Javascript 复选框设置为单选按钮第二次单击故障
我已经创建了一个函数,使我的复选框成为单选按钮,并且可以取消选择。 我遇到的问题是,当第二次点击同一个框时(不是快速双击),它什么都不做,就像它没有捕捉到事件一样 它们的倍数是2,它们的名字相同Javascript 复选框设置为单选按钮第二次单击故障,javascript,jquery,html,Javascript,Jquery,Html,我已经创建了一个函数,使我的复选框成为单选按钮,并且可以取消选择。 我遇到的问题是,当第二次点击同一个框时(不是快速双击),它什么都不做,就像它没有捕捉到事件一样 它们的倍数是2,它们的名字相同 checkbox name 1 checkbox2 name 1 checkbox3 name 2 checkbox4 name 2 .... 这是我的功能,除了那个小故障,它工作得很好 $('#MyDiv').find('input[type="checkbox"]').click(functio
checkbox name 1
checkbox2 name 1
checkbox3 name 2
checkbox4 name 2 ....
这是我的功能,除了那个小故障,它工作得很好
$('#MyDiv').find('input[type="checkbox"]').click(function() {
if (!$(this).is(':checked')) {
$(this).prop('checked', false);
return;
}
$('#MyDiv').find('input[type="checkbox"][name=' + $(this).attr('name') + ']').each(function() {
$(this).prop('checked', false);
});
$(this).prop('checked', true);
});
Html示例:
<div id="MyDiv">
<div>
<p>
<input id="MyDivUsage_Yes" type="checkbox" name="MyDivUsage" />
<label for="MyDivUsage_Yes">Yes</label>
<input id="MyDivUsage_No" type="checkbox" name="MyDivUsage" />
<label for="MyDivUsage_No">No</label>
</p>
</div>
</div>
对
不
由于某些原因,它在JSFIDLE上不起作用。我猜它至少会更有效:
$('#MyDiv').find('input[type="checkbox"]').on('click', function() {
$('input[type="checkbox"][name="'+$(this).attr('name')+'"]').not(this).prop('checked', false);
});
或者更自然一点的JS:
$('input[type="checkbox"]', '#MyDiv').on('click', function() {
var boxes = document.getElementsByName(this.name);
for (var i=0; i<boxes.length; i++) {
if (boxes[i] != this) boxes[i].checked = false;
}
});
$('input[type=“checkbox”]”,'#MyDiv')。在('click',function()上{
var-box=document.getElementsByName(this.name);
对于(var i=0;i尝试以下方法:
var checked = {};
$('.desectable-radio').each(function (index) {
checked[index] = this.checked;
$(this).click(function () {
if (checked[index])
this.checked = false;
for (var i in checked) {
checked[i] = false;
}
checked[index] = this.checked;
});
});
Fiddle:我认为您已经发现了您的问题……事件“摸索”。我不知道如何解决这个问题,所以我也很期待收到回复。你能在这里添加一些html或设置一个示例吗:谢谢,我会继续进行测试。+因为代码是一个很好的示例,它适用于除IE之外的所有浏览器。这非常好!没有任何错误,即使在IE中也是如此。我只需要检查一下更多:)这似乎是一个全面的解决方案。虽然它实际上使用了无线电,但功能是完美的。