javascript - 取消选中单选按钮

标签 javascript jquery html

<input  type="radio" name="things" value="exam" />  exam
<input  type="radio" name="things" value="journey" /> journey


$("input[name=things]").click(function(){
    if($(this).is(':checked')){
        $(this).removeAttr('checked')
    }
})

这行不通。我怎样才能让它发挥作用?以下是我希望它运行的方式:如果我单击选定的输入,则应取消选中它,但如果我单击未选定的输入,则应选中它并取消选中其他输入。

直播:http://jsfiddle.net/syH46/

最佳答案

我想出了这个代码:

var prev = {};
$("input[name=things]").click(function(){
    if (prev && prev.value == this.value) {
        $(this).prop('checked', !prev.status);
    }
    prev = {
        value: this.value,
        status: this.checked
    };
});

不幸的是,我不得不使用额外的变量来存储选中的属性,因为当点击事件被触发时,checked 属性总是为真。

http://jsfiddle.net/syH46/11/

关于javascript - 取消选中单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9480862/

相关文章:

javascript - SproutCore 与 Cappuccino

javascript - 如何使用let关键字为伪命名空间代码添加别名?

javascript - 对象不支持此属性或方法

javascript - 将外部图像加载到工具提示 onMouseOver 事件处理程序中

javascript - 无法获取动态创建的输入字段的更改值

javascript - 用 jQuery/JavaScript 替换 , 的最后一个索引

html - 在 Angular 中,属性值在输入字段中不起作用

jquery - 如何访问ajax成功回调函数中的$(this)

javascript - WebSocket 重试次数有限制吗?

html - 我可以设计这个音频播放器吗?