Czesc
Mam taki HTML:
<label class="col-lg-2"><input type="checkbox" class="switchery-primary" id="mono" class="switchery-primary" onchange="changeFunction(this.value, this.id)" value="mono" > Mono </label>
i taki kod javascript:
function changeFunction(val, id) {
alert(document.getElementById("fieldsetMono").style.display);
if (document.getElementById("fieldsetMono").style.display == "none")
{
document.getElementById("fieldsetMono").style.display = "block";
}
else
{
document.getElementById("fieldsetMono").style.display = "none";
}
}
W stylu mam ustawione:
#fieldsetMono{ display: none; }
I teraz co pokazuje mi alert:
Pierwsza zmiana:
1/ NIC
2/ none
Druga zmiana
1/ block
2/ none
Ogólnie widziałem sporo wątków w odpowiedzi na "why onchange fuction calls twice" ale nigdzie nie znalazłem jakiejś sensownej odpowiedzi.
Rzeczywiście tak jest. Mało tego - generalnie nie rozumiem dlaczego przy drugiej zmianie wyjściową wartością jest none, skoro w pierwszej jest poprawnie.
O co chodzi? Z góry dziękuję za wskazówki :)