2012-03-15 114 views
0

我已经找了几个小时在网上没有运气!jQuery - 多个复选框

我有40个复选框,必须一直检查一个复选框。这是一个复选框,其中一个复选框必须是40中的任何一个。

我知道如何只瞄准一个按钮......这不是目标。用户必须能够选择哪一个保持活动状态。

 $(document).ready(function() { 
     $('#W_E-helpPage01').click(function() { 
     return false; 

至于不是票的表格验证。由于这需要是动态的,因此它必须防止用户取消选中除一个复选框外的所有内容。

例如: 如果30在哪里检查,并且用户决定取消选中所有30,他不能这样做。由于规则必须总是少于一张支票,所以哪一张都是随机的并不重要。

任何帮助将不胜感激。

感谢, 瑞奇

+0

当你的页面LOA ds,是否选中了一个复选框? – 2012-03-15 11:50:47

回答

2

此代码将取消选中,最后选中的复选框停止用户:

$('input:checkbox').on('click', function() {  
    if ($('input:checkbox:checked').length == 0) { 
     return false; 
    } 
});​ 

它检查,看看这个点击的结果那里是没有选中的复选框,并取消如果这是真的,请点击。

http://jsfiddle.net/BQCK3/

+0

奇妙的.......精美的作品 - 非常感谢理查德。我不知道我会做什么,因为我正在学习jQuery – 2012-03-15 12:01:10

+0

不错,是短于分钟^^ – Frederiek 2012-03-15 12:02:11

+0

改进是缓存引用'cb = $('input:checkbox')'使用它在事件绑定和功能检查'if(cb.filter(':checked')。length === 0)':参见http://jsfiddle.net/y6Qmq/ – fcalderan 2012-03-15 12:03:31

1

我已经做了一点小提琴,可以解决这个问题:link

HTML:

<input class="cb" type="checkbox" checked /><span>1</span><br /> 
<input class="cb" type="checkbox" /><span>2</span><br /> 
<input class="cb" type="checkbox" /><span>3</span><br /> 
<input class="cb" type="checkbox" /><span>4</span><br /> 
<input class="cb" type="checkbox" /><span>5</span><br /> 
<input class="cb" type="checkbox" /><span>6</span><br /> 

JS:

$(document).ready(function(){ 

    $(".cb").click(function(){ 

     if(!$(this).is(":checked")){ 
      if($(".cb:checked").length >= 1) 
      { 
       return true; 
      } else { 
       return false; 
      } 
     } else { 
      return true; 
     } 
    }); 
}); 
+1

感谢Frederiek ........ – 2012-03-15 12:51:45

+0

np ^^不客气 – Frederiek 2012-03-15 12:53:23

0
Please use the following example 

<input class="Active test" type="checkbox" checked /><span>1</span><br /> 
<input class="InActive test" test" type="checkbox" /><span>2</span><br /> 
<input class="InActive test" test" type="checkbox" /><span>3</span><br /> 
<input class="InActive test" test" type="checkbox" /><span>4</span><br /> 
<input class="InActive test" test" type="checkbox" /><span>5</span><br /> 
<input class="InActive test" type="checkbox" /><span>6</span><br /> 

$('.test').live('click', function() { 
    if ($(this).hasClass("Active")) { 
     $(this).removeClass("Active"); 
     $(this).addClass("InActive"); 
    } 
    else 
     if ($(this).hasClass("InActive")) { 
      $(this).removeClass("InActive"); 
      $(this).addClass("Active"); 
     } 
    // alert($('.Active').length); 
    if ($('.Active').length == 0) { 
     alert("Atleast one checkbox is required") 
     $(this).addClass("Active"); 
     return false; 
    } 
});