多个动态生成的文本框验证全部不能为空时出了问题?

qlxng 2009-12-20 07:26:25
代码如下:------------------------------------------------------------------------------------
<form name="theform2" method="post" action="inputok.asp" onSubmit="return check2()">

<% for i=1 to request.form("num") %>
<script language="javascript">
function check2()
{

if (document.theform2.name<%=i%>.value=="")
{
alert("学号不能为空");
return false;
}
if (document.theform2.name<%=i%>.value=="")
{
alert("姓名不能为空");
return false;
}
if (document.theform2.name<%=i%>.value=="")
{
alert("政治成绩不能为空");
return false;
}
if (document.theform2.name<%=i%>.value=="")
{
alert("语文成绩不能为空");
return false;
}
if (document.theform2.name<%=i%>.value=="")
{
alert("数学成绩不能为空");
return false;
}
if (document.theform2.name<%=i%>.value=="")
{
alert("英语成绩不能为空");
return false;
}
return true;
}
</script>


<table width="680" border="0" cellspacing="0" cellpadding="0" height="8" align="center" rules="all" id="table1" onkeydown='keyDownControl(event.srcElement)' >
<tr>
<td width="77" height="6">
<div align="left"><font size="2">
<input name="testnumber<%=i%>" type="text" id=aaaa style="border: 1pt solid #EEEEEE;background-color:transparent" value="08<%=request.querystring("grade")%><%=request.querystring("class")%>0<%=i%>" size="11" maxlength="15">
</font></div> </td>
<td width="70" height="6">
<div align="left"><font size="2">
<input type="text" name="name<%=i%>" size="8" style="border: 1pt solid #EEEEEE;background-color:transparent" id=bbbb>
</font></div> </td>
<td width="50" height="6">
<div align="center"><font size="2">
<input name="politics<%=i%>" type="text" id=hhhh style="border: 1pt solid #EEEEEE;background-color:transparent" value="0" size="6" maxlength="5" >
</font></div> </td>
<td width="56" height="6">
<div align="center"><font size="2">
<input name="language<%=i%>" type="text" id=cccc style="border: 1pt solid #EEEEEE;background-color:transparent" value="0" size="6" maxlength="5">
</font></div> </td>
</tr>
</table>
<% next %>
<input type="hidden" name="num" value="<%=request.form("num")%>">
<input type="hidden" name="grade" value="<%=request.querystring("grade")%>">
<input type="hidden" name="class" value="<%=request.querystring("class")%>">
<div align="center"><br>
<input type="submit" name="Submit2" value=" 保存数据 " style="border: 1pt solid #EEEEEE">
<input type="reset" name="Submit3" value=" 重新输入 " style="border: 1pt solid #EEEEEE">
<br>
</div>
</form>
--------------------------------------------------------------------------------------------------
存在的问题:当我点击提交按钮后,只有最后一个文本框不填任何内内容(为空)时会提示"姓名不能为空",其它则不会提示,我要的效果是,只要有一个文本框的内容没有填写内容就会提示"姓名不能为空".
...全文
120 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qlxng 2009-12-21
  • 打赏
  • 举报
回复
1楼的是最好的答案,只是有2个地方(红色部分)要修改下就好了.
------------------------------------------------------
<form name="theform2" method="post" action="inputok.asp" onSubmit="return check2()">

<script language="javascript">
function check2()
{
var num=<%=request.form("num")%>;
//var fms=['name','姓名','politics','政治','language','语文','math','数学','english','英语'];
var fms=['name','姓名','politics','政治','language','语文'];
for(var k=1;k<=num;k++){
for(var i=0;i<fms.length;i+=2){
if(document.forms['theform2'].elements[fms[i]+' '+k].value==''){
alert(fms[i+1]+"不能为空");
return false;
}
}
}
return true;
}
</script>

<% for i=1 to request.form("num") %>
<table ............. >
.............
</table>
<% next %>
-------------------------------------------------------
修改成如下就可以了:
<form name="theform2" method="post" action="inputok.asp" onSubmit="return check2()">

<script language="javascript">
function check2()
{
var num=<%=request.form("num")%>;
//var fms=['name','姓名','politics','政治','language','语文','math','数学','english','英语'];
var fms=['name','姓名','politics','政治','language','语文'];
for(var k=1;k<=num;k++){
for(var i=0;i<fms.length;i+=2){
if(document.forms['theform2'].elements[fms[i]+""+k].value==""){
alert(fms[i+1]+"不能为空");
return false;
}
}
}
return true;
}
</script>

<% for i=1 to request.form("num") %>
<table ............. >
.............
</table>
<% next %>
qlxng 2009-12-20
  • 打赏
  • 举报
回复
5楼的我也试过,不行,还是什么都不提示.
cntmi 2009-12-20
  • 打赏
  • 举报
回复
当然了,每个input的name不要一样
cntmi 2009-12-20
  • 打赏
  • 举报
回复
建议给每个input设置ID,用ID取值,假如ID和name值一样 的
每次就可以这么取值

var id = "name"+i ;
if (document.getElemntById(id).value=="")
{
alert("学号不能为空");
return false;
}


cntmi 2009-12-20
  • 打赏
  • 举报
回复
1楼的这句var num=<%=request.form("num")%>;
应该写成var num="<%=request.form("num")%>";
qlxng 2009-12-20
  • 打赏
  • 举报
回复
1楼的还是不行,测试是什么都不提示.
chrome_ 2009-12-20
  • 打赏
  • 举报
回复
每天回帖即可获得10分可用分!
qlxng 2009-12-20
  • 打赏
  • 举报
回复
我测试下看行不行....
cuixiping 2009-12-20
  • 打赏
  • 举报
回复
<form name="theform2" method="post" action="inputok.asp" onSubmit="return check2()"> 

<script language="javascript">
function check2()
{
var num=<%=request.form("num")%>;
//var fms=['name','姓名','politics','政治','language','语文','math','数学','english','英语'];
var fms=['name','姓名','politics','政治','language','语文'];
for(var k=1;k<=num;k++){
for(var i=0;i<fms.length;i+=2){
if(document.forms['theform2'].elements[fms[i]+' '+k].value==''){
alert(fms[i+1]+"不能为空");
return false;
}
}
}
return true;
}
</script>

<% for i=1 to request.form("num") %>
<table ............. >
.............
</table>
<% next %>
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-20 07:26
社区公告
暂无公告