Javascript/JQuery取消选择单选按钮

lau*_*ura 4 javascript jquery radio-button

我有以下javascript,我想用它来让用户通过点击取消选择一个选定的单选按钮.(我知道这不是标准,但它是系统所要求的:)

DeselectRadioButton = {
    setup: function () {
        $(".deselectRadioButton").click(function () {
            if ($(this).is(':checked')) {
                alert("I am checked!");
                ($(this).removeAttr('checked'));
            }
        });
    }
};
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我选择一个未选中的单选按钮时,它会在警报显示后立即取消选择它.

我猜我在项目更改后收到了这个事件 - 如何修复此代码以使我的单选按钮无法选择?

谢谢!

Mar*_*man 7

但是,主要问题是当我选择一个未选中的单选按钮时,它会在警报显示后立即取消选择它.

看起来你不能阻止单选按钮的默认行为,return false或者e.preventDefault()单击单击处理程序时单击单选按钮.解决这个问题的一种方法是在单选按钮中添加一个单独的类,并将其用作指示符.

$(".deselectRadioButton").click( function(e){
    if($(this).hasClass("on")){
       $(this).removeAttr('checked');
    }
    $(this).toggleClass("on");
}).filter(":checked").addClass("on");
Run Code Online (Sandbox Code Playgroud)

关于jsfiddle的代码示例.