我有一个有很多问题的表格,其中有些是必需的,有些则不是,这不是问题。
下面是一个代码,当'用户'点击“提交”并且没有'~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>
等等等等等等。
“提交按钮”
答案 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;
}
此外,HTML元素ID必须是唯一的。