Radio button-group - change-Ereignisse für Schaltflächen werden deaktiviert?
Sagen wir, ich habe eine Gruppe von zwei radio-buttons:
<input type="radio" name="radioButtonGroup" value="button1" checked="true"/>
<input type="radio" name="radioButtonGroup" value="button2"/>
Scheint es, dass beim klicken auf die zweite Taste löst ein Ereignis-handler auf die Schaltfläche nur. Jedoch, die erste Schaltfläche wird deaktiviert, und optisch nicht verändert. Kann jemand überprüfen, ob Ereignisse ausgelöst werden nur auf die Taste, die ausgewählt wurde, und nicht eine der anderen Schaltflächen in der Gruppe, die werden abgewählt, die als Ergebnis der auf? Jeder clevere Art und Weise zu beobachten, ein radio-button für das deaktivieren-Ereignis?
- Bitte wählen Sie eine Antwort als die richtige, oder angeben, welche weiteren Informationen Sie benötigen, um zu lösen Ihr Problem.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl es nicht bestätigt werden kann, aber der event-änderung stößt nicht zufällig auf die gesamte Gruppe.
Wenn Sie wollen, dass dies geschieht, kann man es mit verschiedenen JS Bibliotheken wie jQuery, YUI, etc.. oder auch nur javascript, wie folgt:
Kann diese Funktion aufgerufen werden, die auf das onClick oder onChange-Ereignis.
Ich hoffe, dass löst Ihr problem.
Erstens, es ist wichtig zu beachten, dass ein "Klick" - Ereignis auf den radios ausgelöst, NACHDEM Sie den "checked" Wert ist bereits aktualisiert. Dies ist wichtig, weil es bedeutet, dass Sie nicht erkennen können das Vorherige Element einmal die Veranstaltung ist bereits gefeuert. Wenn Sie das Ereignis Abbrechen, sind Sie tatsächlich ändern Sie den Wert ZURÜCK - nicht zu stoppen, es zunächst. Dies ist wichtig, um, wie Sie nähern sich das problem.
Beispiel:
Weil dies die einfachste Lösung zu verfolgen, die "letzten" ausgewählte Objekt in eine closure neben Ihrem event-Handler wie folgt:
Für ein Beispiel, siehe:
http://jsfiddle.net/TroyAlford/wvrtC/
Kann ich nicht bestätigen, dass ein Ereignis wird nur gefeuert, die für die ausgewählte Schaltfläche, aber wenn Sie etwas tun müssen mit der Taste, war nur deaktiviert, die folgenden funktionieren würde:
In Aktion hier.
Wenn Sie brauchen, um zu verfolgen mehrere Gruppen von radio-buttons, die Sie tun könnten, mit einem array der aktuell ausgewählten Tasten und match innerhalb des Arrays, wenn eine änderung erkannt wird.
Die einfache Natur der radio-button-set ist, dass nur ein button ausgewählt werden kann, zu einem Zeitpunkt. Die Auswahl einer Schaltfläche automatisch bedeutet, dass die anderen die nicht ausgewählt sind, aber es gibt keine spezifische Aktion für das aufheben. Daher, Sie brauchen nur zu befürchten, dass das eine Ereignis, denn es wirkt sich auf alle Schaltflächen in der Menge auf einmal.
Wenn Sie möchten, um ein element zu verwenden, der es ermöglicht, mehrere Auswahlen versuchen Checkboxen.
Wenn Sie
jQuery
Sie können binden und lösen Sie ein benutzerdefiniertes Ereignis, das wir nennen esdeselect
.Mit folgenden code definieren wir die
deselect
Veranstaltung.Und jetzt können wir binden
deselect
jeder, wo wir Sie brauchen.