2017-10-12 129 views
0

我是JavaScript新手。我的需求是验证复选框的形式。我可以验证单个复选框,但无法验证多个复选框的值。无法验证javascript中的复选框

function validate(form) { 
 
    if (form.answer.checked == false) { 
 
    alert('select anwser!'); //able to validate 
 
    return false; 
 
    } 
 

 
    if (form.answers.checked == false) { 
 
    alert('You must choose any anwsers!'); //unable to validate 
 
    return false; 
 
    } 
 
}
<form id="surveyform" action="#" onsubmit="return validate(this)"> 
 
    <input type="checkbox" name="answer" value="answer1" />answer 
 
    <br><br> 
 
    <input type="checkbox" name="answers[]" value="answer1" />answer1 
 
    <input type="checkbox" name="answers[]" value="answer2" />answer2 
 
    <input type="checkbox" name="answers[]" value="answer3" />answer3 
 
    <input type="checkbox" name="answers[]" value="answer4" />answer4 
 
    <br><br> 
 
    <input type="submit"> 
 
</form>

回答

2

对于多个复选框,你需要做的,如下面的代码片段。

function validate(form) { 
 
\t if(form.answer.checked == false){ 
 
\t \t alert ('select anwser!'); 
 
\t \t return false; 
 
\t } 
 

 
\t var checkans = false; 
 
\t ans = form.elements['answers[]']; 
 
\t for (var i = 0; i < ans.length; i += 1) { 
 
\t \t if (ans[i].checked) { 
 
\t \t \t checkans = true; 
 
\t \t } 
 
\t } 
 
\t if (!checkans) { 
 
\t \t alert ('You must choose any anwsers!'); 
 
\t \t return false; 
 
\t } 
 
}
<form id="surveyform" action="#" onsubmit="return validate(this)"> 
 
\t <input type="checkbox" name="answer" value="answer1" />answer 
 
\t <br><br> 
 
    <input type="checkbox" name="answers[]" value="answer1" />answer1 
 
\t <input type="checkbox" name="answers[]" value="answer2" />answer2 
 
\t <input type="checkbox" name="answers[]" value="answer3" />answer3 
 
\t <input type="checkbox" name="answers[]" value="answer4" />answer4 
 
\t <br><br> 
 
\t <input type="submit"> 
 
</form>

+0

非常感谢:) – Wis

+0

永远欢迎:) – PraveenKumar

1

您可以尝试通过回答阵列循环并在每个复选框检查真实的,你可以通过他们使用的forEach循环。