我需要在表单中验证多个复选框。 如果" primi"和" secondi"不是ceck我会显示警告,如果两者都被检查,我将显示另一个警报。
这是我的表单代码:
<td><input class="quadrato" id="primi" name="primi" type="checkbox" value="1" /></td>
<td><input class="quadrato" id="primi" name="primi" type="checkbox" value="2" /></td>
<td><input class="quadrato" id="primi" name="primi" type="checkbox" value="3" /></td>
<td><input class="quadrato" id="secondi" name="secondi" type="checkbox" value="13" /></td>
<td><input class="quadrato" id="secondi" name="secondi" type="checkbox" value="14" /></td>
<td><input class="quadrato" id="secondi" name="secondi" type="checkbox" value="15" /></td>
<td><input class="quadrato" id="secondi" name="secondi" type="checkbox" value="16" /></td>
这是我使用的javascript函数,如果&#34; primi&#34;被塞住了:
var i, primi = document.getElementsByName('primi');
for (i = 0; i <= primi.length; i++){
if (primi[i].checked){
alert('yes');
return true;
} else{
alert('error');
return false;
}
}
问题是这只有在我选择第一个复选框而不选择另一个复选框时才有效! 我怎样才能解决我的问题?
提前致谢
答案 0 :(得分:2)
这是因为您的逻辑,如果未选中第一个复选框,则在for循环中显示警报并从函数返回,而不给for循环提供检查其余元素的机会。
var i, primi = document.getElementsByName('primi');
for (i = 0; i <= primi.length; i++) {
if (primi[i].checked) {
alert('yes');
return true;
}
}
alert('error');
return false;
注意:元素的ID必须是唯一的,因此除非您需要ID,否则删除ID属性,如果需要,则为每个元素提供唯一ID
答案 1 :(得分:-1)
我无法完全理解您的要求。请详细说明primi和secondi是如何相关的。另外,根据你的代码,你回归真假,我可以知道为什么吗?根据我的说法,只需删除return语句,然后重试......您可以使用下面的代码片段:
var i, primi = document.getElementsByName('primi');
int flag =0;
for (i = 0; i <= primi.length; i++){
if (primi[i].checked){
flag = 1;}
}
if (flag == 1){
alert('yes');
}else{
alert('error');
}
希望这会有所帮助......