繁体   English   中英

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

[英]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();
    }
});

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM