简体   繁体   English

JavaScript的多个复选框验证

[英]Multiple Checkbox validation at javascript

i have multiple checkbox, and all of it must be checked. 我有多个复选框,并且必须选中所有复选框。 i write down the code but it doesnt work. 我写下了代码,但没有用。

this is the code html sample:: 这是代码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>

1st script at head tag 头标处的第一个脚本

<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>

2nd script before /body / body之前的第二个脚本

    <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>

You are setting isValid to true if any checkbox is checked, what you should do is return false if any checkbox is not checked. 如果选中任何复选框,则将isValid设置为true;如果未选中任何复选框,则应该返回false。

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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM