更改功能仅在 radio 被选中时才会捕获,但在未选中时则不会。为什么?它应该那样做吗?当我点击单选按钮时,另一个按钮没有改变,所以事件应该触发,对吧?下面是代码和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 选择会更快(尽管您将看不到差异)。
更新
如果有人知道取消选中复选框后 change
事件没有触发的确切原因,将其发布为评论或答案会很棒。
关于javascript - 更改事件如何在单选按钮上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20227413/