2014-02-20 2 views
0

나는 여러 개의 체크 박스를 가지고 있으며 모두 체크해야합니다. 코드를 기록했지만 작동하지 않습니다. 자바 스크립트에서 여러 체크 박스 유효성 확인

코드 HTML 샘플 ::

<form name="pembres" id="pembres" method="POST" onSubmit="return validateform()" style="margin:0;"> 
    <input type="checkbox" name="lanjut[]" value="setuju2" /> 
    <input type="checkbox" name="lanjut[]" value="setuju3" /> 
    <input type="checkbox" name="lanjut[]" value="setuju4" /> 
    <input type="checkbox" name="lanjut[]" value="setuju5" /> 
    <input type="submit" value="Next Step" name="next" /> 
    </form> 

1 스크립트 머리 태그에서입니다

<script type="text/javascript"> 
     function validateform(){ 
      var success = false; 
       for (i = 0; i < document.pembres.elements['lanjut[]'].length; i++){ 
        if (document.pembres.elements['lanjut[]'][i].checked){ 
         success = true; 
        } 
       } 
      return success; 
     } 
    </script> 
당신은 참으로 isValid을 설정하는

2 스크립트 전에/몸

<script type="text/javascript"> 
var form = document.getElementById('pembres'); 
form.onsubmit = validateForm; 

function validateForm() { 
    var isValid = false, 
     form = this, 
     els = form.elements['lanjut[]']; 
     i; 
    for (i = 0; i < els.length; i += 1) { 
     if (els[i].checked) { 
      isValid = true; 
     } 
    } 
    return isValid; 
} 
</script> 
+0

귀하의 코드는 하나가 선택되었는지 아닌지 모두 확인하고 있습니다. – epascarello

+0

내가 모두 확인하도록 도울 수 있습니까? – user3330800

+0

반대 논리를 수행하십시오 ... – epascarello

답변

0

어떤 체크 박스가 체크되어 있다면, 당신이해야할 것은 c가 있으면 false를 반환하는 것입니다. heckbox가 선택되지 않았습니다.

function validateForm() { 
    var form = this, 
    els = form.elements['lanjut[]'], i; 
    for (i = 0; i < els.length; i += 1) { 
     if (!els[i].checked) { 
      return false; 
     } 
    } 
    return true; 
} 
+0

전역 변수에 해당 변수를 두지 않도록 "form ="앞에 "var"이 있어야합니다. –

관련 문제