【问题标题】:Single change event triggered with radio inputs使用无线电输入触发的单个更改事件
【发布时间】:2018-07-30 03:45:59
【问题描述】:

为什么在检查具有相同名称属性值的不同单选输入后,onchange 事件未触发已检查单选输入。

看看这个jsfiddle。尝试触发至少两个 onchange 事件,因为您可以看到侦听器仅在选中无线电输入时才会触发。当检查其中一个无线电输入而您检查另一个时,之前检查的那个将不会触发 onchange 事件。

对于checkboxes,此事件在未选中时触发,为什么不用于无线电输入?

【问题讨论】:

  • 我相信您希望 onchange 事件在值更改时触发。但它不是那样工作的。这些事件由用户交互调用。参考:stackoverflow.com/questions/590289/…
  • @Gordon Kushner 的值是指将提交的值。如果是这样,我可能需要稍微修改一下我的问题:如何检测无线电输入中的已检查状态变化。
  • 也许我不清楚您在寻找什么。我在您的复选框小提琴中看到的是,当用户取消选中复选框时,会触发一个事件。但是在收音机 Fiddle 中,用户检查另一个,并且在丢失选择的那个上没有引发任何事件。但那是因为用户没有取消选择,浏览器行为因此没有事件。

标签: javascript onchange addeventlistener


【解决方案1】:

我认为单选按钮应该这样定位:$('input[name="test"]')

$('input[name="test"]').change(function(){
	$('#output').append('<p>'+this.value +' changed</p>');
});
#output {
  margin-top: 20px;
  padding: 10px;
  background-color:slategrey;
}
p {
  margin: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label><input type="radio" name="test" value="foo" />Foo</label>
<label><input type="radio" name="test" value="bar" />Bar</label>
<div id="output"></div>

【讨论】:

  • 视情况而定。但是,您的回答与我的问题无关。请再读一遍,如果您有任何问题,请随时发表评论。
猜你喜欢
  • 2019-05-06
  • 2020-01-18
  • 2017-10-01
  • 2021-09-03
  • 2019-12-28
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 2012-11-18
相关资源
最近更新 更多