Heim > Web-Frontend > js-Tutorial > So erfassen Sie Ereignisse zur Deaktivierung von Optionsfeldern: Jenseits der onChange-Einschränkungen

So erfassen Sie Ereignisse zur Deaktivierung von Optionsfeldern: Jenseits der onChange-Einschränkungen

Susan Sarandon
Freigeben: 2024-10-30 10:24:27
Original
266 Leute haben es durchsucht

How to Capture Radio Button Deselection Events: Beyond onChange Limitations

Verwirrung durch Optionsfelder: OnChange-Einschränkungen beheben

Optionsfelder bieten eine bequeme Möglichkeit, einzelne Auswahlen zu verwalten, die Erfassung ihrer vollständigen Zustandsänderungen kann jedoch hilfreich sein herausfordernd. Stellen Sie sich ein Szenario vor, in dem wir mehrere Optionsfelder mit demselben Namen haben und sowohl die Auswahl als auch die Abwahl verfolgen müssen.

Das onChange-Ereignis scheint eine offensichtliche Wahl zu sein, wird jedoch nicht ausgelöst, wenn die Auswahl eines Optionsfelds aufgehoben wird. Dies führt zu einem Problem in Szenarien, in denen wir sowohl aktivierte als auch nicht aktivierte Ereignisse erfassen müssen.

Problemumgehung

Eine Problemumgehung besteht darin, die Methode addEventListener zu verwenden und einen Änderungsereignishandler anzuhängen zu jedem Optionsfeld. Innerhalb des Event-Handlers können wir mithilfe einer Variablen einen Verweis auf das zuvor aktivierte Optionsfeld (prev) verwalten.

Wenn ein Optionsfeld aktiviert ist, protokollieren wir sowohl den vorherigen Wert (prev.value) als auch den aktuellen Wert (this.value). Dadurch können wir sowohl aktivierte als auch nicht aktivierte Ereignisse erfassen.

<code class="js">var rad = document.myForm.myRadios;
var prev = null;
for (var i = 0; i < rad.length; i++) {
    rad[i].addEventListener('change', function() {
        (prev) ? console.log(prev.value): null;
        if (this !== prev) {
            prev = this;
        }
        console.log(this.value)
    });
}
Nach dem Login kopieren

Der zugehörige HTML-Code:

<code class="html"><form name="myForm">
  <input type="radio" name="myRadios"  value="1" />
  <input type="radio" name="myRadios"  value="2" />
</form></code>
Nach dem Login kopieren

Mit dieser Problemumgehung verfügen wir über eine allgemeine Lösung, die onChange-Ereignisse für alle Radios erfasst Schaltflächen, einschließlich Abwahlereignisse.

Das obige ist der detaillierte Inhalt vonSo erfassen Sie Ereignisse zur Deaktivierung von Optionsfeldern: Jenseits der onChange-Einschränkungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage