Javascript 如何检测RadioNodeList值的变化?

Javascript 如何检测RadioNodeList值的变化?,javascript,Javascript,使用带有一组单选按钮的窗体my\u-form,我可以使用my\u-radio.elements.my\u-radio获取对象。我可以使用该对象的值属性获取当前选定按钮的值,如果我将字符串指定给值属性,则所选选项会相应更改 我希望能够执行my_form.elements.my_radio.addEventListener('change'),…,以监听值的变化(通过用户选择不同的选项),但它没有这种方法 如何检测值的变化 是在每个单选按钮对象上设置事件侦听器的唯一方法吗 var my_form=

使用带有一组单选按钮的窗体
my\u-form
,我可以使用
my\u-radio.elements.my\u-radio
获取对象。我可以使用该对象的
属性获取当前选定按钮的值,如果我将字符串指定给
属性,则所选选项会相应更改

我希望能够执行
my_form.elements.my_radio.addEventListener('change'),…
,以监听值的变化(通过用户选择不同的选项),但它没有这种方法

如何检测值的变化

是在每个单选按钮对象上设置事件侦听器的唯一方法吗

var my_form=document.querySelector('my_form');
var my_radio=my_form.elements.my_radio;
//此操作失败,因为RadioNodeList没有addEventListener函数
/*
my_radio.addEventListener('change',function(){
log(“值已更改;新值为“+my_radio.Value”);
});
*/
//下面的方法可行,但是有没有更好的方法,比如使用单个事件侦听器?
for(var i=0,l=my_radio.length;i

值1
价值2
价值3
其他一些我不需要检测更改的字段
您可以尝试以下方法:

my_form.addEventListener('change', function () {
console.log("Value changed; new value is " + my_radio.value);
});

document.formName.radioButtons[thisOne]。单击()

my_form
上设置事件监听器;节点可以获取事件监听器,而
my_form
上的节点列表监听器必须检查更改的元素是否是单选按钮中的一个元素,对吗,因为任何其他元素更改也会调用它?请包括示例HTML(和JavaScript)在你的问题中。换句话说,请包括a。这样做有助于每个人都在谈论同一件事。它还减少了人们回答你的问题所需的工作。这使你更有可能a)得到答案,B)答案实际上解决了你的问题。更不用说一个调试问题需要一个主题,这不是一个调试问题。但是我会添加一些HTML和JS。当然,这已经足够接近@Hamms在他或她的评论中所建议的了。这肯定是一个使用单个事件侦听器的解决方案,但是它需要额外的逻辑,正如您所说的,来确定我们是否关心这个特定事件。我主要是希望RadioNodeList API中有我遗漏的东西,因为我想要解决问题的方式(我注释掉的代码)将完全相同,无论是RadioNodeList还是type=select元素,这对我来说都很好。当表单中的任何其他输入发生变化时,这将触发,例如我的示例中的
some\u other\u字段
。欢迎使用SO。请阅读并在文章中添加解释。