Konflikt bei Änderung von gruppierten Checkboxen
Auge
- javascript
0 Thomas Meinike0 Auge
Hallo
Ich will in einem Formular durch Markierung eines
<input type="radio" ...> den Status mehrerer, gleichnamiger Checkboxen
ändern. Testweise habe ich es mit einer Kurzfassung versucht:
Javascript:
<script type="text/javascript" language="JavaScript">
<!--
function WZStandard()
{
if (document.KVA.WZ[0].checked == true)
document.KVA.AWZ[0].checked = true;
}
//-->
</script>
HTML:
<!-- Anfang: Bereich mit den Radiobuttons -->
<form name="KVA" action="formtest1.php" method="post">
<table>
<tr>
<td><input type="radio" name="WZ" value="Standard" onClick="WZStandard()"></td>
<td>Wohnzimmer (Standard <span class="rot">*</span>)</td>
</tr><tr>
<td><input type="radio" name="WZ" value="Einzelteile"></td>
<td>Einzelteile</td>
</tr><tr>
<td><input type="radio" name="WZ" value="kein Wohnzimmer"></td>
<td>kein Wohnzimmer</td>
</tr>
</table>
<!-- Ende: Bereich mit den Radiobuttons -->
<!-- Anfang: Bereich mit den Checkboxen -->
<table>
<tr>
<td><input type="checkbox" name="AWZ[0]" value="Sitzelemente"></td>
<td>Sitzelemente <span class="rot">*</span></td>
</tr><tr>
<td><input type="checkbox" name="AWZ[1]" value="3-Sitzer"></td>
<td>3-Sitzer</td>
</tr>
...
<!-- Ende: Bereich mit den Checkboxen -->
Die Checkboxen werden mittels eines Arrays an das
verarbeitende Skript übermittelt. Javascript kann
mit dem Namen offenbar nicht umgehen. Benenne ich
die Checkbox an allen Stellen in AWZ um, wird sie
markiert, benutze ich die eckigen Klammern, ob leer
oder durchnummeriert, gibt Javascript folgende
Fehlermeldung aus:
Fehler: 'document.KVA.AWZ.0' ist 0 oder kein Objekt!
Code: 0
Was ist falsch? Und warum wird aus AWZ[0] AWZ.0?
Danke und Tschö, Auge
Hallo,
document.KVA.AWZ[0].checked = true;
Das setzt mehrere (also > 1) Checkboxen mit name="AVZ" voraus und ist die Kurzform von
document.KVA.elements["AWZ"][0]...
Deine heißen aber unterschiedlich AWZ[0] und AWZ[1]. Auf diese kann so zugegriffen werden:
document.KVA.elements["AWZ[0]"]...
document.KVA.elements["AWZ[1]"]...
Oder suchst Du eher so etwas:
Die Checkboxen haben den Namen AWZ[] (wegen der Arraybildung im PHP-Script). Dann gelaenge der Zugriff so:
document.KVA.elements["AWZ[]"][index_ab_0]...
MfG, Thomas
Hallo Thomas
Oder suchst Du eher so etwas:
eher, obwohl die andere Methode ja schließlich auch PHP-tauglich ist.
Die Checkboxen haben den Namen AWZ[] (wegen der Arraybildung im PHP-Script). Dann gelaenge der Zugriff so:
document.KVA.elements["AWZ[]"][index_ab_0]...
wieder was gelernt habend,
Tschö, Auge