复选框验证无法使用javascript

时间:2013-11-26 09:59:16

标签: javascript onclick

每当单击“删除”按钮而不选择任何“复选框”时,它会给出验证 - 适当的 只要选中复选框并单击按钮,它也会显示验证。 我哪里错了?

<tr>
    <td>
        <input type='checkbox' name='check1' value = '80'>Q- 80. Statute of Liberty is in ?
    </td>
</tr>
<tr>
    <td>
        <input type='checkbox' name='check1' value = '64'>Q- 64. National Animal ?
    </td>
</tr>
<tr>
    <td>
        <input type='checkbox' name='check1' value = '65'>Q- 65. Popular language
    </td>
</tr>
<tr>
    <td>
        <input type='checkbox' name='check1' value = '63'>Q- 63. Largest Ocean ?
    </td>
</tr> 

JS:

function Checked(){
    var chk=false;

    if (document.myForm.check1.checked){
        chk=true;
        return chk;
    } else {
        alert("Please select Checkbox");
        return chk;
    } 
}

我的函数调用:

<input type="submit" name="delete" formmethod='post' formaction='/~xyz/cgi-bin/Project/CheckDelete.py' value="Delete" onclick="return Checked()">

2 个答案:

答案 0 :(得分:0)

document.myForm.check1.checked

正如@CBroe所建议的那样,这句话没有效果,因为你有多个复选框。

所以你需要迭代

 var d = document.myForm.check1;
    var arr = 0;
    for (var i = 0; i < d.length; i++) {
        if (d[i].checked) {
            arr++;
        }
    }

这里我创建了一个变量arr,当选中一个复选框时,变量会增加。

最后我会检查

if (arr != 0) return true;
    else {
        alert("Please select Checkbox");
        return false;
    }

最后,

function Checked() {
    var d = document.myForm.check1;
    var arr = 0;
    for (var i = 0; i < d.length; i++) {
        if (d[i].checked) {
            arr++;
        }
    }
    if (arr != 0) return true;
    else {
        alert("Please select Checkbox");
        return false;
    }
}

fiddle

中查看此内容

答案 1 :(得分:0)

由于您有多个具有该名称的输入字段,document.myForm.check1将是 NodeList ,并且没有checked属性。

您要执行的操作是通过复选框循环,并单独检查其状态。如果在该循环中遇到一个被检查的循环,则可以通过返回true离开循环,否则在循环后返回false