更改功能仅在检查无线电时捕获,但在未选中时检查不捕获。为什么?它会表现得那样吗?当我点击单选按钮时,另一个是不变的,所以事件应该开启,对吧?以下是代码和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();
}
});
答案 0 :(得分:2)
当复选框更改时,您可以运行事件处理程序:
$('#op2, #op1').change(...
以下是演示:http://jsfiddle.net/TCt82/
选择此方法的另一种方法是按元素name
,因为两个复选框都需要具有相同的name
属性。按ID选择会更快(尽管您无法看到差异)。
<强> UPADTE 强>
如果有人知道change
事件在取消选中后未在复选框上触发的确切原因,则将其作为评论或回答发布会很棒。
答案 1 :(得分:1)
更改您的选择器以使用名称
获取它$("input[name='choice']").change(function(){
if(op2.is(':checked')){
sp1.hide();
sp2.show();
}
else{
sp2.hide();
sp1.show();
}
});