Autor Zpráva
Someone
Profil
Dobrý den, chtěl bych se zeptat jak docílit něčeho takového:
<script>
  function napis() {
    var neco = document.getElementById("id1");
    if (neco.checked=="checked") {document.write("Zaškrtnuto");}
  }
</script>
<input type="checkbox" onfocus="napis()" id="id1" name="checkbox" value="hodnota" />
Chci při zaškrtnutí checkboxu vykonat akci, ale nedaří se. Prosím vás, v čem může být chyba?
Kcko
Profil
změn onfocus na onchange a document.write na alert jinak si přemažeš stránku.
Someone
Profil
On focus funguje, tím to není a document.write nebo alert, to mi je jedno je to jen ukázkové. Ale ani jedno nefunguje
zkoušel jsem to takto

<script>
  function napis() {
    document.write("Ahoj");
  }
</script>
<input type="checkbox" onfocus="napis()" id="id1" name="checkbox" value="hodnota" />
Tohle funguje, ale když tam dám tu podmínku tak to nefunguje.
Chamurappi
Profil
Reaguji na Someone:
když tam dám tu podmínku tak to nefunguje
Zjevně proto, že se podmínka nesplní. Logický krok by byl zkoumat, proč se nesplní, ne? Porovnáváš dvě hodnoty. Pokud v neco.checked není "checked", zjisti si, co v něm je a pochopíš.
Someone
Profil
Chamurappi:
zjisti si, co v něm je
Tipnul jsem si a zkusil jsem dát místo checked true a nebo 1 a fungovalo to. Díky..
Toto jsem zjistil odhadem, ale pro příště, jak je možné zjistit si co v tomto případě neco.checked obsahuje?

Kcko:
změn onfocus na onchange
Promiň měl jsi pravdu. Sice fungovalo obojí, ale když tam bylo onfocus, tak se nejdřív zavolala funkce a až potom se zaškrtl checkbox. Při onchange se nejdřív zaškrtne, což jsem potřeboval. Děkuju.
Chamurappi
Profil
Reaguji na Someone:
jak je možné zjistit si co v tomto případě neco.checked obsahuje?
Třeba stejně, jako sis sděloval "Zaškrtnuto" nebo "Ahoj". Nebo tím alertem. Nebo… jakkoliv jinak. Vypsat si někam hodnotu proměnné přeci není žádná věda.

Tipnul jsem si
Doporučuji trénovat spíš analytické myšlení, než metodu pokus-omyl.
Ve vlastnosti checked je true či false. V JavaScriptu jsou automatické typové konverze, takže jednička == true.
Someone
Profil
Děkuji za rady, vám oběma.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: