Checkbox klemmt !?!?
Miro
- javascript
Hallo zusammen,
hatte da ein Problem mit einer Checkbox und, wie schön, auch im Forum nach einem Lösungsansatz gefunden. Über folgendes Skript soll beim Aktivieren einer Checkbox ein Textfeld eingeblendet werden. Das funktioniert so weit auch.
Nur kann die Checkbox danach nicht mehr deaktiviert werden.
Kann mir jemand sagen woran das liegt bzw. wie ich das ändern kann?
Vielen Dank,
Miro
<input name="checkbox" type="checkbox" class="radiobutton" onchange="if(this.checked = true){document.getElementById('fld_telefon').style.display = 'inline';};" />
Hi,
Nur kann die Checkbox danach nicht mehr deaktiviert werden.
Kann mir jemand sagen woran das liegt bzw. wie ich das ändern kann?
bei jeder Änderung der Checkbox aktivierst Du sie. Lösung: Lass das einfach sein.
Cheatah
Hallo Miro シ
bei jeder Änderung der Checkbox aktivierst Du sie. Lösung: Lass das einfach sein.
Was dir Cheatah wohl sagen möchte: Überprüfe mal deine IF-Fallunterscheidung und lies dir eventuell mal durch, worin der Unterschied zwischen "=" und "==" besteht ;-)
—Gabriel﹫
Was dir Cheatah wohl sagen möchte: Überprüfe mal deine IF-Fallunterscheidung und lies dir eventuell mal durch, worin der Unterschied zwischen "=" und "==" besteht ;-)
Vielen Dank Gabriel,
schön, dass es auch noch Leute im Forum gibt, die bei "dummen" Fehlern weiterhelfen. Manche haben wohl nie klein (dumm) angefangen.
Viele Grüße und einen schönen Abend noch…
Miro
Hi,
schön, dass es auch noch Leute im Forum gibt, die bei "dummen" Fehlern weiterhelfen. Manche haben wohl nie klein (dumm) angefangen.
das weiß ich nicht, aber manche haben "dumm" angefangen und dann gelernt nachzudenken. Andere wiederum halten es für besser, sich alles vorkauen zu lassen - bis zum Ende ihres Lebens.
Cheatah
Hallo シ
schön, dass es auch noch Leute im Forum gibt, die bei "dummen" Fehlern weiterhelfen. Manche haben wohl nie klein (dumm) angefangen.
das weiß ich nicht, aber manche haben "dumm" angefangen und dann gelernt nachzudenken. Andere wiederum halten es für besser, sich alles vorkauen zu lassen - bis zum Ende ihres Lebens.
Aaach, so sehr vorgekaut fand ich das jetzt nicht.
Aber er konnte was mit meiner Aussage anfangen - und eigene Recherchen betreiben. Deine war dann doch etwas zu kryptisch ;)
Man braucht halt ne Grundlage zum Suchen. Wenn man bei Google "Lass das mal sein" eingibt, kommt man bestimmt nicht zu selfhtml ;)
—Gabriel﹫
Hi
Nur kann die Checkbox danach nicht mehr deaktiviert werden.
<input name="checkbox" type="checkbox" class="radiobutton" onchange="if(this.checked = true){document.getElementById('fld_telefon').style.display = 'inline';};" />
if(this.checked == true)
~
Das zweite "=" fehlt, und somit weist du der Checkbox bei jedem onChange erneut, zu gecheckt zu sein.
Dir sollte aber aufgefallen sein, dass dir noch eine Abfrage fehlt, falls die Checkbox wieder ausgecheckt werden sollte.
Damit sollte es gehen:
<input name="checkbox" type="checkbox" class="radiobutton" onchange="if(this.checked == true){document.getElementById('fld_telefon').style.display = 'inline';};if(this.checked == false){document.getElementById('fld_telefon').style.display = 'none';};" />
Gruß,
DL
Dir sollte aber aufgefallen sein, dass dir noch eine Abfrage fehlt, falls die Checkbox wieder ausgecheckt werden sollte.
Damit sollte es gehen:
<input name="checkbox" type="checkbox" class="radiobutton" onchange="if(this.checked == true){document.getElementById('fld_telefon').style.display = 'inline';};if(this.checked == false){document.getElementById('fld_telefon').style.display = 'none';};" />
Auch dir vielen Dank Downlord!
Habe es schon mit "else" gelößt, funktioniert prima!
Viele Grüße,
Miro
<input name="checkbox" type="checkbox" class="radiobutton" onchange="if(this.checked == true){document.getElementById('fld_telefon').style.display = 'inline';} else{document.getElementById('fld_telefon').style.display = 'none';};" />
Moin Moin!
Dir sollte aber aufgefallen sein, dass dir noch eine Abfrage fehlt, falls die Checkbox wieder ausgecheckt werden sollte.
Damit sollte es gehen:
<input name="checkbox" type="checkbox" class="radiobutton" onchange="if(this.checked == true){document.getElementById('fld_telefon').style.display = 'inline';};if(this.checked == false){document.getElementById('fld_telefon').style.display = 'none';};" />
Bleibt anzumerken, dass es zimlich sinnfrei ist, einen boolschen Wert mit einer boolschen Konstante zu vergleichen, um einen boolschen Wert zu bekommen. "if" erfordert nur einen boolschen Wert, keinen Vergleich.
Ein einfaches if (this.checked) { ... } else { ... }
hätte vollkommen genügt.
Alexander
Hallo,
<input name="checkbox" type="checkbox" class="radiobutton" onchange="if(this.checked == true){document.getElementById('fld_telefon').style.display = 'inline';} else{document.getElementById('fld_telefon').style.display = 'none';};" />
hier bietet sich eher diese Schreibweise an:
<input name="checkbox" type="checkbox" class="radiobutton"
onchange="document.getElementById('fld_telefon').style.display = this.checked ? 'inline':'none';"/>
Gruß plan_B