多个复选框验证 - 无法识别

时间:2014-04-08 17:54:26

标签: javascript html forms validation checkbox

我有一个有很多问题的表格,其中有些是必需的,有些则不是,这不是问题。

下面是一个代码,当'用户'点击“提交”并且没有'~12'复选框被'检查'时,它''警告'用户'必须选择一个'。但是,如果选中一个或多个ARE,它仍会显示相同的“警报”,表明需要选中一个复选框。

验证方法:

function validateForm()
{
    ////Multiple Check Box validation/////////////////

    var chks = document.getElementsByName("HealthConditions");
    var checkCount = 0;
    for (var i = 0; i < chks.length; i++)
    {
        if (chks[i].checked)
        {
            checkCount++;
        }
    }
    if (checkCount < 1)
    {
        alert("Please select at least one current health condition.");
        return false;
    }

    return true;
}

体:

<form id="inshealthform" name="inshealthform" method="post" action="inshealthform_process.php" onsubmit="return validateForm()">

    <input id="HealthConditions"type="checkbox" name="HealthNoConditions" value="No Conditions" tabindex= "22"/>
          No conditions</td>
        <td width="38%" sizcache="3" sizset="11">
    <input id="HealthConditions" type="checkbox" name="HealthAlcohol" value="Alcohol/Substance Abuse" tabindex= "23"/>
        Alcohol/Substance Abuse</td>
        <td width="32%" sizcache="3" sizset="12">
    <input id="HealthConditions" type="checkbox" name="HealthAlzheimers" value="Alzheimer's Disease" tabindex= "24"/>
          Alzheimer's Disease</td>
      </tr>
等等等等等等。

“提交按钮”

1 个答案:

答案 0 :(得分:1)

您的DOM查询正在寻找一个显然不存在的属性(HealthConditions)。

尝试这样的事情:

function validateForm() {

    var chks = document.querySelectorAll('input[type=checkbox]');
    var checkCount = 0;

    for (var i = 0; i < chks.length; i++) {
        console.log(chks[i].checked)
        if (chks[i].checked) {
            checkCount++;
        }
    }

    if (checkCount < 1) {
        alert("Please select at least one current health condition.");
        return false;
    }

    return true;
}

Fiddle

此外,HTML元素ID必须是唯一的。