我想创建一个可以具有未选中值的单选按钮。所以我创建了代码:
$('form').on('click', 'input[type="radio"]:checked', function (event) {
$(this).prop("checked", false);
});
嗯,这非常简单:点击已选中的电台,取消选中它。
但是,发生的事情是它从不首先检查无线电。当我单击未经检查的无线电时,它会在检测到是否已选中之前进行检查,然后将其视为已选中并取消选中。
嗯,这不是重复,因为它提出了一个不同的问题。这不是关于如何取消选中,而是如何在点击时自动取消选中。
如何解决这个问题?
答案 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;
答案 1 :(得分:-1)
您的示例仅在单击按钮时执行。要在页面加载时检查单选按钮,我会设置一个$(document).onload()
事件,将按钮的值设置为选中。