Javascript, alle Checkboxen markieren
Lisali
- javascript
0 Gunnar Bittersmann0 Steel0 molily
Hallo,
ich hab folgenden Code:
Code:
<script type="text/javascript">
<!--
function check_all(checked)
{
for (var i = 0; i < document.forms[0].elements.length; i++) {
document.forms[0].elements[i].checked = checked;
}
}
//-->
</script>
<input type="radio" name="checkall" onclick="check_all(true)" /> alle markieren <input type="radio" name="checkall" onclick="check_all(false)" /> keine markieren
Das klappt auch, aber wenn ich auf den Radio-Button "alle markieren gehe, wird beim Browser der andere input-Feld-Radio-Button markiert (also der zweite).
Ich hoffe mir kann jemand bei dem Problem helfen!
Liebe Grüße,
Lisa
@@Lisali:
nuqneH
<script type="text/javascript">
<!--
[…]
//-->
</script>
Die Auskommentierung von JavaScript-Code ist völlig überflüssig. Weg damit!
function check_all(checked)
{
for (var i = 0; i < document.forms[0].elements.length; i++) {
document.forms[0].elements[i].checked = checked;
}
}
Das klappt auch, aber wenn ich auf den Radio-Button "alle markieren gehe, wird beim Browser der andere input-Feld-Radio-Button markiert (also der zweite).
Der erste wird auch markiert – kurzzeitig. Sehr kurzzeitig, denn gleich darauf kommt in der Schleife das nächste Formularelement dran – der zweite Radiobutton. Radiobuttons haben ja nun einmal die Eigenschaft, dass genau einer aus einer Gruppe von Radiobuttons ausgewählt ist.
Radiobuttons scheinen mir für die Aktionen „alle markieren“ und „keine markieren“ ungeeignet. Was sollen sie anzeigen? Verwende besser richtige Buttons.
Und kennst du Fitts's law? Bei Radiobuttons und Checkboxen immer 'http://de.selfhtml.org/html/formulare/strukturieren.htm#label@title=label' verwenden.
Qapla'
@@Lisali:
nuqneH
<script type="text/javascript">
<!--
[…]
//-->
</script>Die Auskommentierung von JavaScript-Code ist völlig überflüssig. Weg damit!
function check_all(checked)
{
for (var i = 0; i < document.forms[0].elements.length; i++) {
document.forms[0].elements[i].checked = checked;
}
}Das klappt auch, aber wenn ich auf den Radio-Button "alle markieren gehe, wird beim Browser der andere input-Feld-Radio-Button markiert (also der zweite).
Der erste wird auch markiert – kurzzeitig. Sehr kurzzeitig, denn gleich darauf kommt in der Schleife das nächste Formularelement dran – der zweite Radiobutton. Radiobuttons haben ja nun einmal die Eigenschaft, dass genau einer aus einer Gruppe von Radiobuttons ausgewählt ist.
Radiobuttons scheinen mir für die Aktionen „alle markieren“ und „keine markieren“ ungeeignet. Was sollen sie anzeigen? Verwende besser richtige Buttons.
Und kennst du Fitts's law? Bei Radiobuttons und Checkboxen immer 'http://de.selfhtml.org/html/formulare/strukturieren.htm#label@title=label' verwenden.
Qapla'
Also, es ist eigentlich eine Mailbox davor und möchte eben alle Checkboxen markieren mit dem radio-Button.
Welcher Änderungen müsste ich vornehmen, damit er die radio-Buttons ignoriert?
LG,
Lisa
Hi,
bitte zitiere sinnvoll, und nicht gedankenlos alles.
Also, es ist eigentlich eine Mailbox davor und möchte eben alle Checkboxen markieren mit dem radio-Button.
Welcher Änderungen müsste ich vornehmen, damit er die radio-Buttons ignoriert?
Füge eine Abfrage der type-Eigenschaft der Formularelemente hinzu.
MfG ChrisB
Hola!
Das klappt auch, aber wenn ich auf den Radio-Button "alle markieren gehe, wird beim Browser der andere input-Feld-Radio-Button markiert (also der zweite).
Das hast Du ja auch programmiert, oder nicht? Du gibst einfach jedem Element checked = true, ohne zu prüfen was Du da machst.
Drum prüfe, wer sich ewig bindet,
Ob sich das Herz zum Herzen findet!
Der Wahn ist kurz, die Reu ist lang.
;)
Hallo,
Du kannst z.B. den Feldnamen abfragen und den Namen der Radio-Buttons ausschließen:
var form = document.forms[0];
for (var i = 0, field; field = form.elements[i]; i++) {
if(field.name != "checkall") {
field.checked = checked;
}
}
Oder den Feldtyp (Checkbox) abfragen und darüber die Radio-Buttons ausschließen:
...
if(field.type == "checkbox") {
field.checked = checked;
}
...
Mathias