验证多个文本框和checkbox的表单 不能在按提交的时候统一进行验证吗?如果不能,那就只能凭借onblur或者onclick来处理验证。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不能用遍历吗?遍历table里的tr行,得到字元素childNode,再根据类型判断是checkbox or text 根据是否有值,来做验证。 还有不确定数量的checkbox(但是第一行到第十行checkbox的数量都是一样的) 不明白这句是什么意思? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <script type="text/javascript">function checks(){ var tb = document.getElementById("table1").firstChild; var idCards = document.getElementsByName("sfzhm"); var names = document.getElementsByName("name"); var isOk = false; for (var i = 0; i < tb.childNodes.length; i++) { var checkBoxs = document.getElementsByName("checkBox_"+i); var isInput1 = idCards[i].value == "" ? false : true; var isInput2 = names[i].value == "" ? false : true; var isInput3 = false; for (var j = 0; j < checkBoxs.length; j++) { if (checkBoxs[j].checked) { isInput3 = true; } } //一行中的三项没有全填 并且 不是一行中三项都没有填(也就是说该行有一项或者两项没填) if (!(isInput1 && isInput2 && isInput3) && !(!isInput1 && !isInput2 && !isInput3)) { alert("请将第 " + (i+1) + " 行中的数据填写并选勾完整!"); return false; } //一行中三项全有填写的话就标记为可以提交 if (isInput1 && isInput2 && isInput3) { isOk = true; } } if (!isOk) { alert("您没有填写任何数据!\n\n 请填写数据后再提交。"); return false; } return true;} </script> </HEAD> <BODY><br/><br/><br/><br/><br/><br/><form action="" method="post" name="form1" onsubmit="return checks();"><table border=1 align=center id="table1"><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_0"/>杀人 <input type="checkbox" value="1" name="checkBox_0"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_1"/>杀人 <input type="checkbox" value="1" name="checkBox_1"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_2"/>杀人 <input type="checkbox" value="1" name="checkBox_2"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_3"/>杀人 <input type="checkbox" value="1" name="checkBox_3"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_4"/>杀人 <input type="checkbox" value="1" name="checkBox_4"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_5"/>杀人 <input type="checkbox" value="1" name="checkBox_5"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_6"/>杀人 <input type="checkbox" value="1" name="checkBox_6"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_7"/>杀人 <input type="checkbox" value="1" name="checkBox_7"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_8"/>杀人 <input type="checkbox" value="1" name="checkBox_8"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_9"/>杀人 <input type="checkbox" value="1" name="checkBox_9"/>放火</td></tr></table><div align=center><br/><input type="submit" value=" 提 交 "/></div></form> </BODY></HTML>IE7下测试通过 其实每个都设一个id也可以啊(identity0,name0,check1_0,check2_0,check3_0),(identity1,name1,check1_1,check2_1,check3_1)...(identity9,name9,check1_9,check2_9,check3_9)for(var n=0;n<10,n++){ var identity = document.getElementById("identity"+n).value==''?false:true; var name = document.getElementById("name"+n).value==''?false:true; var check = false; for(var i=1;i<4;i++){ if(document.getElementById("check"+i+"_"+n).checked){ check = true; } } if(identity&&(!name||!check)){ alert('请填写姓名和勾选框'); } ...//如此类推} 比如说 第一行 checkbox的数量有时候有两个 ,有时候有三个,(第一行到第十行checkbox的数量都是一样的 )就是说 第一行数量是两个 其它行也是两个 ,第一行是三个的其它行 也是三个.我想要的验证效果就是jiduomi123 给的代码 那样的效果.谢谢大家!! 请教三组图片实现左右轮播 hookeee Object.prototype.s$ = function(name,v,mode)的意思 判断文本框 IE功能汇聚!! 如何控制submit的宽度 谁有关于“正则表达式”的资源,大家共享一下好吗? 那位有关于JavaScript图形控件的文章?马上给分, 怎样通过动态改变CSS位置属性的方法设计一个实现简单动画的Javaseript程序?To:[email protected] jsTree怎么用 JS 截取数据问T,,,,, 请问 谁知道下面的JS文件里的代码 怎么解密,用什么软件可以告诉一下吗
遍历table里的tr行,得到字元素childNode,再根据类型判断是checkbox or text 根据是否有值,来做验证。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script type="text/javascript">
function checks(){
var tb = document.getElementById("table1").firstChild;
var idCards = document.getElementsByName("sfzhm");
var names = document.getElementsByName("name");
var isOk = false;
for (var i = 0; i < tb.childNodes.length; i++) {
var checkBoxs = document.getElementsByName("checkBox_"+i);
var isInput1 = idCards[i].value == "" ? false : true;
var isInput2 = names[i].value == "" ? false : true;
var isInput3 = false;
for (var j = 0; j < checkBoxs.length; j++) {
if (checkBoxs[j].checked) {
isInput3 = true;
}
}
//一行中的三项没有全填 并且 不是一行中三项都没有填(也就是说该行有一项或者两项没填)
if (!(isInput1 && isInput2 && isInput3) && !(!isInput1 && !isInput2 && !isInput3)) {
alert("请将第 " + (i+1) + " 行中的数据填写并选勾完整!");
return false;
}
//一行中三项全有填写的话就标记为可以提交
if (isInput1 && isInput2 && isInput3) {
isOk = true;
}
}
if (!isOk) {
alert("您没有填写任何数据!\n\n 请填写数据后再提交。");
return false;
}
return true;
}
</script>
</HEAD>
<BODY>
<br/><br/><br/><br/><br/><br/>
<form action="" method="post" name="form1" onsubmit="return checks();">
<table border=1 align=center id="table1">
<tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_0"/>杀人 <input type="checkbox" value="1" name="checkBox_0"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_1"/>杀人 <input type="checkbox" value="1" name="checkBox_1"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_2"/>杀人 <input type="checkbox" value="1" name="checkBox_2"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_3"/>杀人 <input type="checkbox" value="1" name="checkBox_3"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_4"/>杀人 <input type="checkbox" value="1" name="checkBox_4"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_5"/>杀人 <input type="checkbox" value="1" name="checkBox_5"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_6"/>杀人 <input type="checkbox" value="1" name="checkBox_6"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_7"/>杀人 <input type="checkbox" value="1" name="checkBox_7"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_8"/>杀人 <input type="checkbox" value="1" name="checkBox_8"/>放火</td></tr><tr><td>身份证号<input type=text name="sfzhm"/></td><td>姓名<input type=text name="name"/></td><td><input type="checkbox" value="0" name="checkBox_9"/>杀人 <input type="checkbox" value="1" name="checkBox_9"/>放火</td></tr>
</table>
<div align=center><br/><input type="submit" value=" 提 交 "/></div>
</form>
</BODY>
</HTML>IE7下测试通过
for(var n=0;n<10,n++){
var identity = document.getElementById("identity"+n).value==''?false:true;
var name = document.getElementById("name"+n).value==''?false:true;
var check = false;
for(var i=1;i<4;i++){
if(document.getElementById("check"+i+"_"+n).checked){
check = true;
}
}
if(identity&&(!name||!check)){
alert('请填写姓名和勾选框');
}
...//如此类推
}