多个复选框验证

时间:2011-11-03 11:53:26

标签: javascript html asp-classic

我知道如何验证单个复选框,但是如果我有多个复选框并且我将这些值保存到数据库中的数组中该怎么办?我希望用户选择一个或多个复选框,弹出一个警告框。

下面是我使用的表单和验证器的snipet。表单的其余部分验证正常。我使用asp生成多个复选框,但stackoverflow不允许显示它,所以只是让你知道有多个复选框。

HTML:

<input type="checkbox" name="j" value="<%=getcall_1_ary(jt)%>"/>

使用Javascript:

 if (document.addSC.j.checked == false ) {
   alert("Select Desired Job Type")
 }

3 个答案:

答案 0 :(得分:1)

试试这段代码。

<script>
    function validateCheckBoxes() 
    {
        var isValid = false;
        //alert("Check if any checkbox is not checked..."); 
        var allRows = document.getElementsByTagName("input");
        for (var i=0; i < allRows.length; i++) {
            if (allRows[i].type == 'checkbox' && allRows[i].name == '123') {
                if (allRows[i].checked == true) {
                       return true;
                }
            }
        }
        return isValid;
    }

    function submitBtn (){
        if (!validateCheckBoxes()){
            alert("no check box selected");
        }
        else 
            alert("one or more check box selected");
    }


</script>

HTML部分:

<form  method="get">
    <input type="checkbox" name="123" />
    <input type="checkbox" name="123" />
    <input type="checkbox" name="123" />
    <input type="button" value="submit" onClick="JavaScript:submitBtn();"/>
</form>

立即检查。

答案 1 :(得分:0)

我建议您使用JQuery查询复选框,然后循环它们以确保至少检查一个。

答案 2 :(得分:0)

首先,请确认输入数据服务器端。我读了你的问题,这表明你没有,所以这是我的提示。

此外,您可以获取名为“j”的所有复选框。

var checkboxes = document.getElementsByTagName("input");
var jChecks = [];
for (var i = 0; i <= checkboxes.length; i++) {
    if (checkboxes[i].name == "j" && checkbox[i].checked) {
        jChecks.push( checkboxes[i] );
    }
}
if (jChecks.length > 0) {
    alert('more then one selected!');
} else {
    alert('select some checkboxes!');
}