单击取消选中已选中的广播

时间:2016-05-26 17:38:48

标签: javascript jquery html checkbox

我想创建一个可以具有未选中值的单选按钮。所以我创建了代码:

$('form').on('click', 'input[type="radio"]:checked', function (event) {
    $(this).prop("checked", false);
});

嗯,这非常简单:点击已选中的电台,取消选中它。

但是,发生的事情是它从不首先检查无线电。当我单击未经检查的无线电时,它会在检测到是否已选中之前进行检查,然后将其视为已选中并取消选中。

嗯,这不是重复,因为它提出了一个不同的问题。这不是关于如何取消选中,而是如何在点击时自动取消选中。

如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

您可以像以下一样解决您的问题。



$('form :radio').attr('data-ischecked', function() {
    return this.checked;
}); //set initial status in data-ischecked attribute 

$('form').on('click', ':radio', function () {
    var status = $(this).data('ischecked'); //get status
    status && $(this).prop("checked", false); //uncheck if checked
    $(this).data('ischecked', !status); //toggle status
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <input type="radio"/>
    <input type="radio"/>
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

您的示例仅在单击按钮时执行。要在页面加载时检查单选按钮,我会设置一个$(document).onload()事件,将按钮的值设置为选中。