2013-11-26 111 views
0

我知道把复选框当作单选按钮并不是一个好习惯,但我需要用户能够在他们想要的时候取消选择一个选项。我有一些jQuery将用户限制为一个选项,但我需要一个选项来取消选中另一个选项的时间。现在,用户必须取消选中选中的选项,然后选择其他选项。如何在选择另一个选项时取消选中复选框?

这是当前脚本:

$(function() { 
    var max = 1; 
    $('#checks-wrap-app-type').on('click', 'input[type="checkbox"]', function(){ 
     return $(this).closest('#checks-wrap-app-type').find(':checked').length <= max; 
    }); 
]); 

我不知道如何改变这一点,以便选择了其他选项时,当前选中选项未被选中。任何帮助将不胜感激。如果您需要更多信息,请与我们联系。

谢谢。

+2

您是否尝试过不选中jQuery中的所有选项,然后检查是否需要?无需查找检查的输入。 – Feanor

+0

显然@wared不是读者。 – mikeriley131

+0

@费尔诺 - 你能澄清一下吗?谢谢。 – mikeriley131

回答

0

使用更改事件,而是和上变化,只是取消所有,不包括刚换了一个。

$('#checks-wrap-app-type').on('change', 'input[type="checkbox"]', function(){ 
    $('#checks-wrap-app-type input[type="checkbox"]').not($(this)).prop('checked', false); 
}); 
+0

我不得不重写一些东西来完成它的工作,但这帮助我达到了目标。谢谢! – mikeriley131

0

你有没有想过使用单选按钮?他们会做你想做的事情。

+0

他们不会因为我需要用户能够取消选择,这是无法用单选按钮完成的。 – mikeriley131

0

检查:

if($('.checkbox1').prop('checked') == 'true') 
     $('.checkbox1').prop('checked',false); 

    if($('.checkbox2').prop('checked') == 'true') 
     $('.checkbox2').prop('checked',false); 
相关问题