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

标签 javascript jquery html radio-button onchange

更改功能仅在 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/

相关文章:

javascript - 检测何时使用 jQuery UI 的可拖动项向左或向右拖动?

javascript - 如何根据所选列表项一次更改多个图像的 src

html - 使用 css 的响应式网页

Javascript:3秒后启用页面上的所有提交按钮

javascript - 使用 react-router-redux 访问参数

javascript - Node.js将json数组对象插入mysql表

javascript - JQuery 如何根据选定的选项标签生成更多表单字段

javascript - 如何使 jquery 滚动功能 ui-touch-punch 与来自 Bootstrap 的响应式 div 类一起工作?

javascript - 检测位置并隐藏元素

html - 使用纯 HTML 切换到移动 View