2013-03-11 6 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

вы можете упростить это даже больше. 'if (! $ ('. chkboxes'). is (': checked')) alert();' –

+0

В документах jQuery "Описание: проверьте текущий согласованный набор элементов на объект селектора, элемента или jQuery и return true, если хотя бы один из этих элементов соответствует данным аргументам. " –

+0

@undefined 'is' проверяет, соответствует ли элемент _any_. –

Смежные вопросы