Mehrere Checkboxen auswählen (Array)
hawkmaster
- javascript
Hallo zusammen,
ich habe auf einem Formular mehere Checkboxen untereinander. Mit einem Click sollen alle angewählt (checked) werden können.
Wenn die Checkboxen so heissen:
<input name="chk_sorten"
und es gibt ein Button mit;
onClick="this.value=check(this.form.chk_sorten)
klappt das mit unten stehender JS Funktion.
Ich muss aber verschiedene Values der Checkboxen mit PHP auswerten. Daher brauche ich den Namen der Checkboxen als Array.
<input name="chk_sorten[]"
und nun geht diese Funktion nicht mehr.
Hat hier jemand eine Idee?
function check(field) {
if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field[i].checked = true;}
checkflag = "true";
return " keine "; }
else {
for (i = 0; i < field.length; i++) {
field[i].checked = false; }
checkflag = "false";
return " alle "; }
}
vielen Dank und viele Grüße
hawk
Mahlzeit hawkmaster,
onClick="this.value=check(this.form.chk_sorten)
Was spricht gegen
onclick="this.value=check(this.form.[ref:self812;javascript/objekte/elements.htm@title=elements]['chk_sorten[]']);"
?
MfG,
EKKi
Hallo Ekki, hallo Martin,
onclick="this.value=check(this.form.[ref:self812;javascript/objekte/elements.htm@title=elements]['chk_sorten[]']);"
Tausend Dank euch beiden. Das war die Lösung.
Einfacher als ich dachte ;-)
vielen Dank und viele Grüße
hawk
Hallo,
ich habe auf einem Formular mehere Checkboxen untereinander. Mit einem Click sollen alle angewählt (checked) werden können.
Wenn die Checkboxen so heissen:
<input name="chk_sorten"
und es gibt ein Button mit;
onClick="this.value=check(this.form.chk_sorten)
... dann ist das schlecht, weil es eigentlich "onclick" heißen sollte.
Ich muss aber verschiedene Values der Checkboxen mit PHP auswerten. Daher brauche ich den Namen der Checkboxen als Array.
<input name="chk_sorten[]"
und nun geht diese Funktion nicht mehr.
Doch, an sich schon - du musst nur das Checkbox-Array wieder korrekt an die Funktion übergeben.
Der Name(!) der Checkboxen lautet ja nun "chk_sorten[]", und aufgrund der Sonderzeichen im Namen musst du ihn nun als String angeben:
this.form.elements["chk_sorten[]"]
Ich bin mir nicht sicher, ob hier auch die verkürzte Form
this.form["chk_sorten[]"]
möglich ist. Siehe auch Schema 4 zur Adressierung von Eigenschaften eines Objekts.
if (checkflag == "false") {
Warum verwendest du hier "false" als String? Das ist nicht nur ungewöhnlich, sondern auch unpraktisch. Verwende doch direkt einen boolschen Wert, dann kannst du die Abfrage direkt als
if (checkflag)
oder eben negiert als
if (!checkflag)
formulieren.
So long,
Martin