2015-07-13 99 views
0

我想限制取消所有3個複選框的能力。jquery禁用剩餘的複選框時,2 3未經檢查

<input type="checkbox" value="one" checked> one 
<input type="checkbox" value="two" checked> two 
<input type="checkbox" value="three" checked> three 


$(":checkbox").click(function() {        
    if ($("input:checked").length == 2){               
    $(':checkbox(:checked)').prop('disabled', false); 
    }else{               
    $(':checkbox(:checked)').prop('disabled', true); 
    }               
});  

我不能得到它來禁用最後一個複選框,因爲沒有被選中。 請幫忙!

http://jsfiddle.net/Vg4ty/81/

+0

爲什麼downvote? – BragDeal

+0

我沒有downvote,但你的小提琴工作 – AmmarCSE

+0

不,它禁用其他兩個再次檢查!我應該只允許我取消選中3中的2個,但我應該始終能夠檢查未選中的項目 – BragDeal

回答

1

$(":checkbox").click(function() { 
 
    if ($("input:checked").length == 1) { 
 
    $(':checked').prop('disabled', true); 
 
    } else { 
 
    $(':checked').prop('disabled', false); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<input type="checkbox" value="one" checked>one 
 
<input type="checkbox" value="two" checked>two 
 
<input type="checkbox" value="three" checked>three

+0

謝謝!就是這樣 – BragDeal

0

捕獲點擊事件,然後阻止默認的行動,如果它會導致點擊元素的數量是零。

$("input[type=checkbox]").on("click",function(evt) {    
    if ($("input[type=checkbox]:checked").length == 0) { 
     evt.preventDefault(); 
    }               
}); 
相關問題