菜鸟求大师们了:
我做了一个成绩录入的表单,录入中肯定会有错录的,因此写了一个验证的函数,但似乎它只能在每列的最后一行起作用,而不是对循环体中的每位同学的成绩都发生作用,下面是我的代码,请高手们帮忙看看,不胜感谢了!<!--#include file="conn.asp"-->
<%
dim grade,banji,num,rs,sql,yw,xm,i
grade=request.querystring("grade") '所要录入的年级,由上一表单传来
banji=request.querystring("banji") '所要录入的班级,由上一表单传来
set rs = server.createobject("adodb.recordset")
sql = "select * from 学生成绩 where 年级 = "&grade&" and 班级="&banji&""
rs.open sql,conn,1.1
num=rs.recordcount  '假定这个班人数在2个以上,下面"空值"及"必须是数字"验证目前只对最后一个起作用,而不是对num循环中的所有要验证的值
%>
<html>
<head>
<title>语文成绩录入</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<form name="form" method="post" action="input.asp" onSubmit="return check()">
<table align="center">
<tr> 
<td>姓名</td>
        <td>语文</td>
</tr>
     <% for i = 1 to num
if not rs.EOF then %> 
<script language="javascript">
function check()
{
if (document.form.xm<%=i%>.value=="")
    {
    alert("请正确填写,姓名不能有空值");
    return false;
}
if (document.form.yw<%=i%>.value=="")
    {
    alert("请正确填写,成绩不能有空值");
    return false;
}
if (isNaN(document.form.yw<%=i%>.value)) {
alert("成绩必须是数字!");
document.form.yw<%=i%>.focus();
return false;
}
    return true;
}
</script>
<input type="hidden" name="id<%=i%>" value="<%=rs("id")%>"> 
<tr>
<td><input type="text" name="xm<%=i%>" value="<%=rs("姓名")%>"></td>
        <td><input type="text" name="yw<%=i%>"></td>
</tr>
<%
rs.MoveNext
end if
next
%>
<tr>
<td>
<input type="hidden" name="num" value="<%=num%>">
    <input type="hidden" name="grade" value="<%=grade%>">
    <input type="hidden" name="banji" value="<%=banji%>">
    <input type="Submit" name="Submit" value=" 提交录入" >
</td>
</tr>
</table>
</form>
</body>
</html>
<%
rs.close
set rs = nothing
conn.close
set conn = nothing
%>

解决方案 »

  1.   

    html页面 右键 查看源代码,是什么内容,贴上来
      

  2.   

    循环写的有问题吧 最好用document.getElementById("");
    给点提示你看看<script language="javascript">
    var xm="xm";
    var xmFlag=false;
    <% for i = 1 to num
    if not rs.EOF then %> 
    if(document.getElementById(xm<%=i%>).value==""){
      xmFlag=true;
    }
    <%
    rs.MoveNext
    end if
    next
    %>
     if(xmFlag){
     alert("请正确填写,姓名不能有空值");
      return false;
    }
    </script>不知道这样对你有用不