Auswahl von checkboxen begrenzen
erawan
- javascript
Servus!
Ich stehe gerade vor folgender Aufgabe:
In einem Formular gibt es mehrere Reihen mit verschieden vielen Checkboxen. Nun sollte, wenn der Besucher in eine der Reihen eine Box anhakt nur mehr in dieser Reihe weitere Boxen auswählen kann.
Und das i-Tüpfelchen wäre noch wenn man dann weitere Boxen nur davor oder danach in dieser Reihe anhaken kann.
Derzeit habe ich keine Ahnung ob dies überhaupt möglich ist geschweige den wie. Wisst ihr vielleicht wie man diese Sache am besten angehen kann?
Hinweis zum Aufbau: jede Reihe besteht aus einem div welches die input Felder enthält, welche wiederum von label tags umgeben werden.
MfG erawan
hi,
In einem Formular gibt es mehrere Reihen mit verschieden vielen Checkboxen. Nun sollte, wenn der Besucher in eine der Reihen eine Box anhakt nur mehr in dieser Reihe weitere Boxen auswählen kann.
Also willst du dir merken, in welchem "Container" sich die erste angekreuzte Checkbox befindet.
Bei jedem weiteren Ankreuzen einer Checkbox willst du dann prüfen, ob sie in dem selben "Container" liegt - und wenn nicht, die Änderung verweigern.
Und das i-Tüpfelchen wäre noch wenn man dann weitere Boxen nur davor oder danach in dieser Reihe anhaken kann.
Dann arbeite mit dem Index der Checkboxen o.ä.
gruß,
wahsaga
Einmal danke für die Auskunft dass diese Aufgabe nicht unmöglich ist ;-)
Ich habe zwar bereits erste Gehversuche mit javascript Funktionen gemacht bei denen Checkboxen automatisch mitangehakt werden und kann mit vorstellen dass die jetzt gesuchte Lösung auch etwas in der Art sein wird aber ich fürchte die Umsetzung übersteigt noch ein wenig mein Wissen.
Hier mal ein grober Fahrplan, wie ich mir vorstellen kann:
natürlich müsste es auch noch einen Fall geben wenn der Haken bei dieser ersten CB wieder entfernt wird dass die parentid wieder geleert wird. (nächstes WIE?)
Dann arbeite mit dem Index der Checkboxen o.ä.
Damit kann ich leider noch nix anfangen. (Hä?)
MfG erawan
hi,
Hier mal ein grober Fahrplan, wie ich mir vorstellen kann:
- bei Checkbox funktion aufrufen: onchange='checkreihe(this)'
onclick wäre evtl. angebrachter.
- in der javasript funktion die ID des übergeordneten divs herausfinden (WIE???)
parentNode
Wenn noch andere Elemente dazwischen liegen, du hattest glaube ich labels erwähnt, dann ist natürlich nicht gleich der erste parentNode der gesuchte Div - sondern der parentNode vom parentNode, o.ä.
Wenn man hier die HTML-Struktur nicht festzementieren will, um ein Script zu entwicklen, welches auf _genau_ und _nur genau_ dieser Struktur "funktioniert" - dann sollte man sich vielleicht etwas anderes überlegen, um eine Gruppenzugehörigkeit der Checkboxen zu ermitteln - bspw. über eine Klasse oder einen gemeinsamen Namen.
- wenns die erste Box ist diese parentid zwischenspeichern
- wenn diese Variable bereits einen Wert enthält vergleichen mit der jetzigen parentid
- wenn sich diese unterscheiden auswählen der box verhindern (WIE?)
Aus dem click-Event heraus einfach false zurückgeben, um die Default-Aktion zu unterbinden.
Bei reagieren auf onchange dann halt stattdessen die checked-Eigenschaft abfragen, Wert ggf. negieren.
(Btw: Da könnte onchange dann doch ggf. besser sein - denn sonst kann man u.U. gar keine bereits ausgewählte Checkbox wieder abwählen, wenn man sich bei den Bereichsgrenzen geirrt hat o.ä.)
natürlich müsste es auch noch einen Fall geben wenn der Haken bei dieser ersten CB wieder entfernt wird dass die parentid wieder geleert wird. (nächstes WIE?)
Merk-Variable wieder überschreiben/auf null setzen ...
gruß,
wahsaga
Hallo!
Danke für die kleinen Brotkrumen. Mal schauen ob ich damit den Weg finden werd.
MfG erawan