auf eine CheckBox zugreifen
Rolf
- javascript
Hallo,
in einem Formular existieren mehrere CheckBoxen:
<form name="myFORM" action="test.php">
<input type="checkbox" name="bx[0]" value="Wurst">
<input type="checkbox" name="bx[1]" value="Milch">
<input type="checkbox" name="bx[2]" value="Brot"></form>
Nun soll eine zufällige Vorauswahl getroffen werden:
function getCheck() {
var i = Math.round(2 * Math.random());
alert('Nummer:' + i);
document.myFORM.bx[i].checked = true;
}
Es gibt aber nur eine Fehlermeldung:
"document.myFORM.bx ist Null oder kein Objekt"
Haargenau die gleiche Methode auf RadioButtons angewendet klappt bestens.
Irgendwie fehlt mir da der richtige Ansatz - hat den jemand ...
m.b.G. Rolf
Hi,
<input type="checkbox" name="bx[0]" value="Wurst">
<input type="checkbox" name="bx[1]" value="Milch">
document.myFORM.bx[i].checked = true;
Es gibt aber nur eine Fehlermeldung:
"document.myFORM.bx ist Null oder kein Objekt"
Mit diesem Problem kommt alle Nase lang jemand hier angerannt - Lesen koennte helfen.
http://de.selfhtml.org/javascript/objekte/elements.htm#allgemeines, Schema 4.
MfG ChrisB
Hallo Chris,
Mit diesem Problem kommt alle Nase lang jemand hier angerannt - Lesen koennte helfen.
nicht wirklich,
denn da steht nicht, warum man den Namen von Radiobutton indizieren darf,
das bei einer Checkbox nicht zulässig ist bzw. der Index zum Namen rechnet.
Mit anderen Worten, es gibt unlogische Ausnahmen, die man sich schlecht
merken kann, weshalb die Leute regelmäßig hier aufschlagen ... ;-)
Aber jetzt läufts, vielen Dank, schönes WE, bis demnächst
m.b.G. Rolf
Hi,
Mit diesem Problem kommt alle Nase lang jemand hier angerannt - Lesen koennte helfen.
nicht wirklich,
denn da steht nicht, warum man den Namen von Radiobutton indizieren darf,
das bei einer Checkbox nicht zulässig ist
Natuerlich ist es in beiden Faellen zulaessig.
Mit anderen Worten, es gibt unlogische Ausnahmen
Bei Radionbuttons mit name="x[0]", name="x[1]" etc. zu arbeiten, waere bloedsinnig, weil die Radiobuttons dann nicht mehr gruppiert sind (was man aber wohl i.a.R. wollen wird).
MfG ChrisB
Hallo Chris,
hast recht, da gibt es feine Unterschiede:
<form name="myTest" action="test.php" method="post">
<input name="rb" type="radio" value="ja">
<input name="rb" type="radio" value="nein">
<input name="rb" type="radio" value="vielleicht">
<input name="cb[0]" type="checkbox" value="Wurst">
<input name="cb[1]" type="checkbox" value="Milch">
<input name="cb[2]" type="checkbox" value="Käse">
Wenn man das so hinschreibt, wird es einem klar!
m.b.G. Rolf
denn da steht nicht, warum man den Namen von Radiobutton indizieren darf,
das bei einer Checkbox nicht zulässig ist bzw. der Index zum Namen rechnet.
Da missverstehst du etwas.
Wenn gleichnamige Checkboxen oder Radiobuttons existieren, dann liefert document.forms.formularname.elements.feldname einen Array. Du musst zwischen Feldnamen und diesem Array unterscheiden.
Wenn ein Feld mit name="bla[0]" existiert, dann ist dieses Feld über .elements["bla[0]"], nicht etwa über .elements.bla[0] zugänglich. Das liegt daran, dass "bla[0]" als Eigenschaftsname zwar möglich ist, man aber auf solch benannte Eigenschaften nicht über die Schreibweise objekt.unterobjekt zugreifen kann, sondern nur mittels objekt["unterobjekt"] - weil die eckigen Klammern eben eine Bedeutung in JavaScript haben und nicht als Teil des Eigenschaftsnamens interpretiert werden.
.elements.bla[0] ist auch möglich, allerdings in einem anderen Fall und hat dann eine andere Bedeutung: Wenn es mehrere Felder mit name="bla" gibt, dann liefert .elements.bla[0] das erste davon. Du suchst also gleichnamige Felder. Damit diese als Array in JavaScript zur Verfügung stehen, musst du keine Indizes in die Feldnamen schreiben, im Gegenteil.
Mathias