2013-12-08 63 views
0

我是jQuery的新手,我需要在同一個表單的一組複選框中至少選中一個複選框。這裏是一個JSFiddle以相同的形式驗證多組複選框jQuery

HTML:

<form> 
    <!-- CHECKBOX GROUP NUMBER ONE --> 
    <h3>group one</h3> 

    <input type="checkbox" class="reqNow" name='part1'> 
    <input type="checkbox" class="reqNow" name='part1'> 
    <br> 
    <br> 
    <!-- CHECKBOX GROUP NUMBER TWO --> 
    <h3>group two</h3> 

    <input type="checkbox" class="reqNow" name='part2'> 
    <input type="checkbox" class="reqNow" name='part2'> 
    <!-- CHECKBOX GROUP NUMBER THREE --> 
    <h3>group three</h3> 

    <input type="checkbox" class="reqNow" name='part3'> 
    <input type="checkbox" class="reqNow" name='part3'> 
    <!-- CHECKBOX GROUP NUMBER FOUR --> 
    <h3>group four</h3> 

    <input type="checkbox" class="reqNow" name='part4'> 
    <input type="checkbox" class="reqNow" name='part4'> 
    <br> 
    <input type="submit"> 
</form> 

JAVASCRIPT:

var submitOK = false; 


$("form").submit(function (e) { 
    e.preventDefault(); 


    var a = $(".reqNow").serializeArray(); 

    $.each(a, function (i, b) { 
     if (b.value == "on") { 
      submitOK = true; 
     } 


     if (submitOK) { 
      alert("Form Sent!"); 
     } 
    }); 

}); 

所以基本上我想要的形式發送,只有當至少有一個複選框每個組中被選中。

任何幫助表示讚賞!

+0

你的代碼是好的,你可以添加額外的檢查,看是否'如果(b.name ==「第一部分」) 'if if(b.name ==「part2」)'等等。 –

回答

1

您可以檢查類似這樣的回答JQuery Multiple Checkbox Groups Validation

$("form").submit(function (e) { 
    e.preventDefault(); 
    var g1 = $('.reqNow[name=part1]:checked').length; 
    var g2 = $('.reqNow[name=part2]:checked').length; 
    var g3 = $('.reqNow[name=part3]:checked').length; 
    var g4 = $('.reqNow[name=part4]:checked').length; 
    if (g1 > 0 && g2 > 0 && g3 > 0 && g4 > 0) 
     alert('Form sent!'); 
}); 

瞭解改JSFiddle