请问关于表单验证的问题.谢谢
如果动态的生成多行表单,比如像点击增加一行这类的表单.
表单中的列名都是递增的,如第一列:xh1 xh2 xh3... 第二列:xm1 xm2 xm3 等等
请问大家有什么好方法在表单提交中onSubmit="return check()"的 函数中验证所提交的表单,
达到效果,用户提交的X行数据,X行中每一列的数据都不允许为空,为空就提示,
请教.... 谢谢!
最好给个例子...谢谢
[解决办法]
用jquery可以这样吧,遍历所有的input
$("input").each(function(){
if(!$(this).val()){alert('不能为空');return false;}
});
[解决办法]
正好我也在做这个功能,给你参考下
<body><script language="javascript">function test() { var v1 = ""; var v2 = ""; var reRecords = new Array(); var LEN = document.getElementById("qty").value; //文本框的个数//***************************************** for(var i=1; i<=LEN ; i++) { if(document.getElementById("weeknumber" + i).value=="") { alert("周别不能为空!");document.getElementById("weeknumber" + i).focus();return false; } }//***************************************** //通过两层 for 循环得到相同的元素,并加入到 reRecords 数组中 for(var i=1; i<=LEN ; i++) { if(document.getElementById("weeknumber" + i) != null) { v1 = document.getElementById("weeknumber" + i).value; } for(var j=i+1; j<=LEN ; j++) { if(document.getElementById("weeknumber" + j) != null) { v2 = document.getElementById("weeknumber" + j).value; if(v1 == v2) {//alert("v2 = " + v2); reRecords[reRecords.length] = v2; break; } } } }//取得相同元素结束//去掉 reRecords 数组中相同的元素,即:将含有相同元素的值用""来代替 for(var i=0; i<reRecords.length; i++) { var s1 = reRecords[i]; if(s1 == "") { break; } for(var j=i+1; j<reRecords.length; j++) { var s2 = reRecords[j]; if(s1 == s2) { reRecords[j] = ""; } } }//用 "" 代替元素结束//数组中剩下的非 "" 元素就是最后想要的值,即:构造str的过程。 var str = "\r\n"; for(var i=0; i<reRecords.length; i++) { if(reRecords[i] != "") { str += reRecords[i]; str += "\r\n"; alert("發現重复的值是:" + str);str = ""; //重置 str 为空 return false; } }//构造str 结束alert('保存成功!');for(var i=1; i<=LEN ; i++){document.getElementById("weeknumber" + i).value="";} }</script><form id="form1" name="form1" method="post" action=""><% for i=1 to 5%><input type="text" name="weeknumber<%=i%>" id="weeknumber<%=i%>"/><br /><% next %><input name="qty" id="qty" type="hidden" value="<%= i-1%>" /><input type="button" name="button" id="button" value="提交" onclick="test();" /></form></body>