2012-03-15 63 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; 
    } 
});