2013-03-11 38 views
1

我有一個複選框的列表,並且我給每個類一個。 這個想法是強制用戶檢查所有適用的方框,並且至少必須檢查一個方框。jQuery - 驗證每個循環中的複選框

這裏是我的邏輯:

<form method="post" onsubmit="return validateForm()"> 
<input type="checkbox" class="chkboxes" name="chkbox1" id="chkbox1"> Text Here<br> 
<input type="checkbox" class="chkboxes" name="chkbox2" id="chkbox2"> Text Here<br> 
<input type="checkbox" class="chkboxes" name="chkbox3" id="chkbox3"> Text Here<br> 
<input name="Submit" type="submit" value="Submit"> 
</form> 

<script language="javascript" type="text/javascript"> 

function validateForm() { 

$(".chkboxes").each(function(){ 

    if($(this).is(':checked')==true){ 
    return true; 
    }else{ 
    alert('Please check at least 1 box'); 
    return false; 
    } 

}); 

}//eof validateForm function 

</script> 

當我提交表單,JavaScript函數調用成功。 但是,它似乎沒有認識到任何複選框被選中。

任何人都可以看到我的JavaScript函數中的任何錯誤?

回答

3
function validateForm() { 
    var len = $(".chkboxes:checked").length; 
    if (len === 0) 
    alert('Please check at least 1 box'); 
    } 
    return len > 0; 
} 
+1

你可以簡化更多。 (':checked'))alert();' – 2013-03-11 18:57:45

+0

每個jQuery文檔「說明:根據選擇器,元素或jQuery對象檢查當前匹配的元素集,並如果這些元素中至少有一個匹配給定的參數,則返回true。「 – 2013-03-11 19:00:27

+0

@undefined'is'測試_any_元素是否匹配。 – 2013-03-11 19:01:02