现有一个表单,表单内有多行,和多项,行数不定,有可能是一行,有可能是多行,现要在提交过程中对有些项进行判断,不知道怎么做,如
序号     姓名      字段一     字段二     字段三   
  1       aa         ..        ..          ..
 ..       ..         ..        ..          ..
".."代表不定项和可以输入内容
现在想在提交表单的时候判断,如果字段二为空,字段三为空,这时提交的时候就停在相应行的字段二的位置上,不知道如何做,用javascript,如何做,或者用vbscript,
注意,行数是不定的,各字段都用的是字段名称每一行都一样,但ID不一样,例
如果字段二中的文本框的名称为aa的话,那么相应每一行的字段二的名称都为aa,但第一行的字段二的ID为1,二行的字段二的ID为2,请高手指点!!非常感谢!!

解决方案 »

  1.   

    只能告诉你思路,具体怎么写你自己去想,javascript和vbscript都可以实现,而且比较简单,
    你只要在你生成多表单的时候定义一个变量(我写的代码是vbscript),用来计数
    例如:<%
      dim i
      i = 0
      while (not dataSet.EOF)
        i = i + 1
        response.write("<input type=text name=字段一"&i&" size=5 value=2>")
        response.write("<input type=text name=字段二"&i&" size=5 value=2>")
        ...其它字段省略
      dataSet.movenext()
      wend
    %>
     你在最后这个地方加上一个hidden项,把记录条数保存起来,然后你就可以获取了。
     <input type="hidden" name="rcount" value="<%=i%>">
     现在你就可以在你的submit按钮里面判断了,那些字段的数据为空,
     
     dim count 
     count = request.Form("rcount")
     然后你就可以根据这个数循环判断了 当然这个判断用javascript的去写可能交互性好些,原理是一样的,只是把循环改成javascript的循环语句就可以了
      

  2.   

    忘了,这个地方我拷贝过来给写错了,没有改,你直接把value的值赋值成你的数据就可以了。
    response.write("<input type=text name=字段一"&i&" size=5 value=2>")
    response.write("<input type=text name=字段二"&i&" size=5 value=2>")
      

  3.   

    那个循还我知道,现在只要是提交验证这不行,
    因为行数是从数据库中取,假如是按着符合字段一的所有人的数据取出来,这个时候,数据肯定是不一样的,所以行数也是不一样的,另外,字段名一样是为了到时提交表单的时候,到往数据库添加数据时候好用数组.现在就是不好判断每一行中的字段二和字段三都为空就提示出错,并且需要停在相应行的字段二上,
    下面是有一个朋友回复的,
    <script language="javascript">
    function chk(){
    var xx=document.getElementsByName("aa");
    var i;
    for(i=0;i<xx.length;i++){
    if(xx[i].value==""){
    alert(xx[i]+"is null");
    return false;
    }
    }
    }
    </script>
    但是ALERT提示出错的信息不正确,说OBJECT is null,并且不能返回,还是能直接提交.哪位高手再帮忙解决一下.
      

  4.   

    兄弟,你发错地方了。
    不过这里的人大部分都学过ASP。
      

  5.   

    这位大哥你发错了这里是jsp的地盘啊
      

  6.   

    哦,原来JSP的人不用javascript,不知道,我还以为用呢,呵呵