更改事件如何在单选按钮上工作

时间:2013-11-26 20:34:27

标签: javascript jquery html radio-button onchange

更改功能仅在检查无线电时捕获,但在未选中时检查不捕获。为什么?它会表现得那样吗?当我点击单选按钮时,另一个是不变的,所以事件应该开启,对吧?以下是代码和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();
    }
});

2 个答案:

答案 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();
    }
});

工作样本http://jsbin.com/UPILuCe/1