Autor Zpráva
Martin Smolák
Profil
Ahoj,
jakým způsobem zjistit, v jakém stavu je "zaškrtávací políčko"? potřebuji dostat nějakou "proměnnou" do skriptu

      

<div id="EnCurrentPIpReg">
  <input type="checkbox" name="EnCurrentPIpReg" class="EnCurrentPIpReg-checkbox" id="EnCurrentPIpRegId" checked>
    <label class="EnCurrentPIpReg-label" for="EnCurrentPIpRegId">
          <span class="EnCurrentPIpReg-inner"></span>
          <span class="EnCurrentPIpReg-switch"></span>
     </label>
</div>
<div id="switchPI">
   <img src="switchPI.svg" name="onoff"></td>   
</div> 
 
Skript:
<script>
if(promenna)
{
  document.images["onoff"].src="switchPI.svg";
}else
{
  document.images["onoff"].src="switchCustom.svg";
}
</script>



Děkuji předem za odpověď
pcmanik
Profil
Martin Smolák:
document.getElementById("EnCurrentPIpRegId").checked
Keeehi
Profil
Třeba takto Živá ukázka
Martin Smolák
Profil
Toto jsem už taky zkoušel a nefunguje to :/ Nikdy se to nerovná 1 (při zaškrtnutí to má pořád hodnotu 0 - document.getElementById("EnCurrentPIpRegId").checked = 0)

Když zadám do if(document.getElementById("EnCurrentPIpRegId").checked == 0), tak se tento výraz rovná pořád 1.

Má někdo ještě další nápady?
Keeehi
Profil
Martin Smolák:
Funguje to. Viz živá ukázka. Pro názornost ještě tato s existujícími obrázky. Z html kódu odebírej a přidávej checked u inputu a uvidíš, že se to mění.

Jak to, že to nefunguje, když klikneš na ten checkbox? No protože se ten javascript provede hned po načtení stránky. Nečeká až klikneš na něco ani se znovu neprovádí. Pokud chceš, aby se prováděl při každé změně checkboxu, pak ho budeš muset navázat na nějakou událost. Živá ukázka
Martin Smolák
Profil
Keeehi:
To je přesně to co jsem potřeboval :) Díky
Joker
Profil
Mimo to nedává smysl v podmínce porovnávat vlastnost checked proti hodnotám 0 a 1.

Vlastnost checked už je typu boolean, takže tenhle zápis tam přidává jen úplně zbytečné operace navíc.

Rozdíl v rychlosti sice bude úplně zanedbatelný, ale zápis if(!document.getElementById("EnCurrentPIpRegId").checked) je i kratší a logičtější.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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