当前位置: 首页 > 面试题库 >

单选按钮的OnChange事件处理程序(INPUT type =“ radio”)不能用作一个值

谭裕
2023-03-14
问题内容

我正在为此寻求一个通用的解决方案。

考虑2个具有相同名称的无线电类型输入。提交后,选中的将确定以以下形式发送的值:

<input type="radio" name="myRadios" onchange="handleChange1();" value="1" />
<input type="radio" name="myRadios" onchange="handleChange2();" value="2" />

取消选择单选按钮时,更改事件不会触发。因此,如果已经选择了值=“
1”的单选按钮,并且用户选择了第二个,则handleChange1()不会运行。这(无论如何对我而言)带来了一个问题,因为没有任何事件可以使我取消选择。

我想要的是一个针对复选框组值的onchange事件或一个oncheck事件的变通办法,该事件不仅可以检查无线电是否选中,还可以不选中无线电。

我敢肯定你们当中有些人曾经遇到过这个问题。有哪些解决方法(或者理想情况下是正确的处理方式)?我只想捕捉更改事件,访问以前检查过的收音机以及新检查过的收音机。

PS
onclick似乎是一个更好的(跨浏览器)事件,用于指示何时选中某个收音机,但仍不能解决未选中的问题。

我认为这对于在这种情况下为什么onchange的复选框类型起作用是有道理的,因为它会更改您在选中或取消选中它时提交的值。我希望单选按钮的行为更像是SELECT元素的onchange,但是您该怎么办…


问题答案:
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)

    });

}


<form name="myForm">

  <input type="radio" name="myRadios"  value="1" />

  <input type="radio" name="myRadios"  value="2" />

</form>

这是一个JSFiddle演示:https
://jsfiddle.net/crp6em1z/



 类似资料:
  • import { Radio } from 'feui'; components: { [Radio.name]: Radio }, data() { return { radio001: ["安徽", "北京"], radio001Value: "安徽", radio002Value: "北京", radio003: [ {

  • 复选框用来提供一组选项,可以选中不止一个选项。传统的桌面程序的单选按钮组没有对触摸输入的方式进行优化,所以在Jquery Mobile中,label也被样式化为复选按钮,使按钮更长,容易点击。并添加了自定义的一组图标来增强视觉反馈 单选按钮组和复选按钮组都是用标准的html代码写的,但是都被样式化得更容易点击。你所看见的控件其实是覆盖在input上的label元素?所以如果图片没有正确加载,你仍然

  • 本文向大家介绍jQuery获取选中单选按钮radio的值,包括了jQuery获取选中单选按钮radio的值的使用技巧和注意事项,需要的朋友参考一下   实例1:   获取一组单选按钮对象:var obj_payPlatform = $('#wrap input[name="payMethod"]');   获取被选中按钮的值 :var val_payPlatform = $('#wrap inpu

  • 本文向大家介绍JQuery radio(单选按钮)操作方法汇总,包括了JQuery radio(单选按钮)操作方法汇总的使用技巧和注意事项,需要的朋友参考一下 随着Jquery的作用越来越大,使用的朋友也越来越多。在Web中,由于CheckBox、Radiobutton 、DropDownList等控件使用的频率比较高,就关系到这些控件在Jquery中的操作问题。由于Jquery的版本更新很快,代

  • 本文向大家介绍浅谈监听单选框radio改变事件(和layui中单选按钮改变事件),包括了浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)的使用技巧和注意事项,需要的朋友参考一下 若是只引用jquery的话,监听单选按钮改变事件如下: 注意:如果是引用了layui的样式和方法,则上面的监听事件失效,被layui接管了,所以应该如下写法: 以上这篇浅谈监听单选框radio改变事件(和

  • 我仍然是Java和JavaFX的初学者,目前我正在努力寻找一种方法来阻止/中断单击按钮时发生的事件。因此,我正在构建一个程序,将产品(类)添加到TableView中。到目前为止,一切正常,产品添加成功,其参数由我的自定义函数检查,用户是否在名称/价格/金额字段中分别输入了字符串/双精度/整数值。 在我的检查功能中,当输入的值不正确时,也会打印一个错误,但我也希望这样做,以便在输入不正确的值时,3个