首页  >  文章  >  web前端  >  如何捕获单选按钮取消选择事件:超越 onChange 限制

如何捕获单选按钮取消选择事件:超越 onChange 限制

Susan Sarandon
Susan Sarandon原创
2024-10-30 10:24:27193浏览

How to Capture Radio Button Deselection Events: Beyond onChange Limitations

单选按钮混乱:解决 onChange 限制

单选按钮提供了一种处理单个选择的便捷方法,但捕获其完整状态更改可能会很困难。具有挑战性的。考虑一个场景,我们有多个同名的单选按钮,并且需要跟踪选择和取消选择。

onChange 事件似乎是一个明显的选择,但当取消选择单选按钮时它不会触发。这在我们需要捕获已选中和未选中事件的情况下会产生问题。

解决方法

一种解决方法是利用 addEventListener 方法并附加更改事件处理程序到每个单选按钮。在事件处理程序内部,我们可以使用变量维护对先前选中的单选按钮 (prev) 的引用。

选中单选按钮时,我们会记录先前的值 (prev.value) 和当前的值值(这个值)。这使我们能够捕获选中和未选中的事件。

<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)
    });
}

随附的 HTML 代码:

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

通过此解决方法,我们有了一个通用的解决方案,可以捕获所有单选按钮的 onChange 事件按钮,包括取消选择事件。

以上是如何捕获单选按钮取消选择事件:超越 onChange 限制的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn