[英]How to check if the radio buttons has already bound with a “change” event handler
[英]How change event work on radio buttons
更改功能仅在检查无线电时捕获,但在未选中时检查不捕获。 为什么? 它会表现得那样吗? 当我点击单选按钮时,另一个是不变的,所以事件应该开启,对吧? 下面是代码和jsfiddle 。 我做错了吗?
HTML:
Option1 <input type="radio" name="choice" id="op1" checked/>
Option2 <input type="radio" name="choice" id="op2"/>
<br><br>
<span id="sp1">Option1</span><br>
<span id="sp2" style="display: none;">Option2</span>
使用Javascript:
var op2 = $('#op2');
var sp1 = $('#sp1');
var sp2 = $('#sp2');
op2.change(function(){
if(op2.is(':checked')){
sp1.hide();
sp2.show();
}
else{
sp2.hide();
sp1.show();
}
});
您可以在任一复选框更改时运行事件处理程序:
$('#op2, #op1').change(...
这是一个演示: http : //jsfiddle.net/TCt82/
另一种选择方法是按元素name
因为两个复选框都需要具有相同的name
属性。 按ID选择会更快(尽管您将无法看到差异)。
UPADTE
如果有人知道change
事件在取消选中后未在复选框上触发的确切原因,则将其作为注释或答案发布将非常有用。
更改选择器以使用名称获取它
$("input[name='choice']").change(function(){
if(op2.is(':checked')){
sp1.hide();
sp2.show();
}
else{
sp2.hide();
sp1.show();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.