【发布时间】:2017-07-27 23:26:17
【问题描述】:
我在验证是否至少选中了一个复选框时遇到了问题。
相同的代码被用于不同的表单并且它工作完美,但我不知道为什么它不在这个表单上。
脚本:
if(jQuery('#MOTForm input[type=checkbox]:checked').length == 0) {
alert("1");
valid = valid && false;
$("#MOTFORMERROR").css('color', 'red');
$("#MOTFORMERROR").html("*Choose at least one");
}else{
$("#MOTFORMERROR").html("");
}
HTML:
<td style="width: 10%;" rowspan="3">
<div style="padding-left:5px;">
<form id="MOTForm">
<input name="" type="checkbox" class="form-check-input"/> HEMS<br />
<input name="" type="checkbox" class="form-check-input"/> EMS<br />
<input name="" type="checkbox" class="form-check-input"/> Walk-in<br />
</form>
<p id="MOTFORMERROR"></p>
</div>
</td>
if 语句块中的代码一直在运行,而不是 else 语句块中的代码,即使一个或全部复选框已选中!
【问题讨论】:
-
您在此处显示的代码中没有任何内容必然会导致问题。您可以尝试在选择器中引用属性;例如,
'#MOTForm input[type="checkbox"]:checked'但我怀疑这是问题所在。也许您有两个具有相同 ID 的元素? -
valid 最初在哪里声明/初始化?该javascript代码何时运行?它会在页面加载、表单提交、另一个事件发生(例如按钮点击)等时运行吗?
-
我仔细检查,没有两个元素具有相同的id
-
valid 在.click 开头声明
-
当您说“相同的代码”时,您的意思是在同一页面中 100% 相同?如果是这样,那么这是您的问题,因为您有重复的 id,例如
<form id="MOTForm">
标签: javascript jquery validation checkbox forms