2010-07-29 92 views
1

我想添加JavaScript验证到一堆复选框,基本上我想要的是一旦用户选择了3个复选框,它应该禁用除勾选的三个复选框外的所有复选框。Javascript复选框验证

我该怎么做呢?

Thanx提前!

回答

2

,如果你选择其中的3下面将禁用复选框的休息,也使他们一旦您取消选择的三个之一..

$(':checkbox').click(
    function(){ 
     var selected = $(':checkbox:checked').length; 
     if (selected == 3) 
     { 
      $(':checkbox:not(:checked)').attr('disabled',true); 
     } 
     else 
     { 
      $(':checkbox:not(:checked)').attr('disabled',false); 
     } 
    } 
); 

Live demo

+0

这很好,谢谢! – Odyss3us 2010-07-31 06:03:58

0

在onclick处理程序上,当单击一个复选框时,如果未选中某个计数器,则会将该计数器加1,这会减少计数。提高计数后,测试一下是否为三。那么最简单的方法可能是保存三个复选框的ID,或者保存在上一步。然后改变点击事件,只有当ID匹配保存的ID时才返回true。 对不起,我现在没有时间写实际的代码。希望这会让你开始。

0

jQuery的

$("#container :checkbox").click(function(){ 
    if ($("#container :checkbox").length >= 3) { 
    $("#container :checkbox").attr("disabled", "disabled"); 
    } 
}); 
+0

@Matt,'$(this)'不是一个选项,因为我们正在处理一组复选框.. – 2010-07-29 23:37:54

+0

是的,我应该使用.each()。 Upvoted您的解决方案,而不是 – ryan 2010-07-30 10:55:01