你这样做,不仅麻烦,而且有很多弊端,用下面这种动态表单的方法可以达到你的目的,以下是以jsp为例子的,asp与此类似/////////////// test1.jsp /////////////////////////////
<html>
<head>
<title>==动态表单示例 freefalcon 2002-12-05==</title>
</head>
<script language=javascript>
//增加一行
function addLine()
{
  elm = thead1.lastChild.cloneNode(true);//复制隐藏的行
  elm.style.display="block";//将其显示属性置为可见
  tbody1.insertBefore(elm);//将新增行添至表格最后
  tbody1.rows[tbody1.rows.length-1].cells[1].firstChild.value=tbody1.rows.length;//设置序号
  tbody1.rows[tbody1.rows.length-1].cells[4].firstChild.selectedIndex=0;//初始化“性别”,不具备一般性,仅作为例子参考
}
//删除指定的行
function deleteLine()
{
  for (var i=tbody1.children.length-1;i>=0;i--)
    if (tbody1.children[i].firstChild.firstChild.checked)//如果某行被选中,则删除
      tbody1.deleteRow(i);
  for(var i=0;i<tbody1.children.length;i++)//重新设置序号
    tbody1.rows[i].cells[1].firstChild.value=i+1;
}
</script>
<body>
<form name="form1" method="post" action="test2.jsp">
  <table id="table1" border=1 width="100%" height="27" align="center">
    <thead id="thead1"> 
    <tr> 
      <th width="43" height="24">选择</th> 
      <th width="49" height="24">序号</th>
      <th width="115" height="24">姓名</th>
      <th width="83" height="24">年龄</th>
      <th width="62" height="24">性别</th>
      <th width="277" height="24">电子邮件</th>
    </tr>
    <tr style="display:none" align="center"> 
      <td width="43" height="24"> 
        <input type=checkbox name="checked"></td>
      <td width="49" height="24"> 
        <input size=5 name="num" readonly>
      </td>
      <td width="115" height="24"> 
        <input size=15 name="name">
      </td>
      <td width="83" height="24"> 
        <input size=10 name="age"></td>
      <td width="62" height="24"> 
        <select name="sex">
          <option value="male" selected>男</option>
          <option value="female">女</option>
        </select> 
      </td>
      <td width="277" height="24"> 
        <input size=30 name="email">
      </td>
    </tr>
   </thead>
   <tbody id="tbody1">
    <tr align="center"> 
      <td width="43" height="24"> 
        <input type=checkbox name="checked"></td>
      <td width="49" height="24"> 
        <input size=5 name="num" value=1 readonly>
      </td>
      <td width="115" height="24"> 
        <input size=15 name="name">
      </td>
      <td width="83" height="24"> 
        <input size=10 name="age"></td>
      <td width="62" height="24"> 
        <select name="sex">
           <option value="male" selected>男</option>
           <option value="female">女</option>
         </select> 
      </td>
      <td width="277" height="24"> 
        <input size=30 name="email">
      </td>
    </tr>
   </tbody>
  </table>
  <p align=center>
  <input type=button value="添加" onClick="addLine()">
  <input type=button value="删除" onClick="deleteLine()">
  <input type=submit value="提交">
  </p>
</form>
</body>
</html>/////////////// test2.jsp ////////////////////////
<%@ page contentType="text/html; charset=gb2312" %>
<html>
<body>
<%
String[] num=request.getParameterValues("num");
String[] name=request.getParameterValues("name");
String[] age=request.getParameterValues("age");
String[] sex=request.getParameterValues("sex");
String[] email=request.getParameterValues("email");for(int i=1;i<num.length;i++)//注意是从1开始,因为有一行隐藏的输入框
{
  out.println(num[i]+" "+name[i]+" "+age[i]+" "+sex[i]+" "+email[i]+"<br>");//根据需要处理
}
%>
</body>
</html>

解决方案 »

  1.   

    你的愿望也不是不能实现,如下
    <html>
    <head>
    <title>Checkbox 问题</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <script>
    function document.onclick(){
      var e=event.srcElement;
      if(e.tagName=="INPUT" && e.type=="checkbox"){
          var r=e.parentElement.parentElement;
          for(i=2;i<5;i++)r.cells[i].firstChild.disabled=!e.checked;//改变输入框的属性
          var chks=document.getElementsByName("checkbox");
          var index=1;
          for(i=0;i<chks.length;i++){
             if(chks[i].checked)chks[i].value=index++;//修改value,但不按点击的先后顺序
             else chks[i].value=0;//未选中的都为0,以便接收页面判断
          }
          //下面是测试用的
          for(i=0;i<chks.length;i++){
    alert(chks[i].value);
          }
      }
    }
    </script>
    <body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="">
      <table width="100%" border="1" cellspacing="0" cellpadding="1">
        <tr> 
          <td width="6%">&nbsp;</td>
          <td width="7%">序号</td>
          <td width="34%">货号</td>
          <td width="32%">描述</td>
          <td width="21%">数量</td>
        </tr>
        <tr> 
          <td width="6%"> 
            <input type="checkbox" name="checkbox" value="1" >
          </td>
          <td width="7%">1.</td>
          <td width="34%"> 
            <input type="text" name="textfield2" disabled>
          </td>
          <td width="32%"> 
            <textarea name="textfield" disabled></textarea>
          </td>
          <td width="21%"> 
            <input type="text" name="textfield3" disabled>
          </td>
        </tr>
        <tr>
          <td width="6%">
            <input type="checkbox" name="checkbox" value="2" >
          </td>
          <td width="7%">2.</td>
          <td width="34%">
            <input type="text" name="textfield4" disabled>
          </td>
          <td width="32%">
            <textarea name="textfield5" disabled></textarea>
          </td>
          <td width="21%">
            <input type="text" name="textfield6" disabled>
          </td>
        </tr>
        <tr> 
          <td width="6%"> 
            <input type="checkbox" name="checkbox" value="3">
          </td>
          <td width="7%">3.</td>
          <td width="34%"> 
            <input type="text" name="textfield22" disabled>
          </td>
          <td width="32%"> 
            <textarea name="textarea" disabled></textarea>
          </td>
          <td width="21%"> 
            <input type="text" name="textfield23" disabled>
          </td>
        </tr>
      </table>
    </form>
    </body>
    </html>
      

  2.   

    freefalcon(心宇):
      多谢你,但是可不可以做到让CHECKBOX的值按照我点击的先后顺序来自动赋值!!
     很感激你,真的很感激!!!
      

  3.   

    下面的可以了,注意checkbox都初始化value为0,并且未被选中的也为0
    <html>
    <head>
    <title>Checkbox 问题</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <script>
    var index=1;
    function document.onclick(){
      var e=event.srcElement;
      if(e.tagName=="INPUT" && e.type=="checkbox"){
          var r=e.parentElement.parentElement;
          for(i=2;i<5;i++)r.cells[i].firstChild.disabled=!e.checked;//改变输入框的属性
          if(e.checked)e.value=index++;
          else{ 
              e.value=0;index--;
              var chks=document.getElementsByName("checkbox");
          
              for(i=0;i<chks.length;i++){
                if(chks[i].value>e.value&&chks[i].checked){
                  chks[i].value=eval(chks[i].value-1);               
                 //修改value,按点击的先后顺序 
                }     
             }      }
           //下面是测试用的
    var chks=document.getElementsByName("checkbox");
           for(i=0;i<chks.length;i++){
    alert(chks[i].value);
           }  }
    }
    </script>
    <body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="">
      <table width="100%" border="1" cellspacing="0" cellpadding="1">
        <tr> 
          <td width="6%">&nbsp;</td>
          <td width="7%">序号</td>
          <td width="34%">货号</td>
          <td width="32%">描述</td>
          <td width="21%">数量</td>
        </tr>
        <tr> 
          <td width="6%"> 
            <input type="checkbox" name="checkbox" value="0" >
          </td>
          <td width="7%">1.</td>
          <td width="34%"> 
            <input type="text" name="textfield2" disabled>
          </td>
          <td width="32%"> 
            <textarea name="textfield" disabled></textarea>
          </td>
          <td width="21%"> 
            <input type="text" name="textfield3" disabled>
          </td>
        </tr>
        <tr>
          <td width="6%">
            <input type="checkbox" name="checkbox" value="0" >
          </td>
          <td width="7%">2.</td>
          <td width="34%">
            <input type="text" name="textfield4" disabled>
          </td>
          <td width="32%">
            <textarea name="textfield5" disabled></textarea>
          </td>
          <td width="21%">
            <input type="text" name="textfield6" disabled>
          </td>
        </tr>
        <tr> 
          <td width="6%"> 
            <input type="checkbox" name="checkbox" value="0">
          </td>
          <td width="7%">3.</td>
          <td width="34%"> 
            <input type="text" name="textfield22" disabled>
          </td>
          <td width="32%"> 
            <textarea name="textarea" disabled></textarea>
          </td>
          <td width="21%"> 
            <input type="text" name="textfield23" disabled>
          </td>
        </tr>
      </table>
    </form>
    </body>
    </html>
      

  4.   

    楼主,上面的不合要求吗?
    我上面是按选中的顺序来改变value的值呀,没选中的都被设为0,是为了将其与选中的区分开,而且我也考虑到了选择后再取消选择对value的影响,你还要实现什么要求?
      

  5.   

    freefalcon(心宇):
    需要 按照它点击的顺序来给他副值,有可能选中了之后再取消!!!明白我的要求了吗?
      

  6.   

    不要意思,主要是一条语句位置错了,看看下面的符不符合要求
    <html>
    <head>
    <title>Checkbox 问题</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <script>
    var index=1;
    function document.onclick(){
      var e=event.srcElement;
      if(e.name=="checkbox"){
          var r=e.parentElement.parentElement;
          for(i=2;i<5;i++)r.cells[i].firstChild.disabled=!e.checked;//改变输入框的属性
          if(e.checked)e.value=index++;
          else{           
              var chks=document.getElementsByName("checkbox");      
              for(i=0;i<chks.length;i++){
                if(chks[i].checked&&chks[i].value>e.value){//alert(i+" "+chks[i].value)
                  chks[i].value=eval(chks[i].value-1);               
                 //修改value,按点击的先后顺序 
                }
                
             }
             e.value=0;index--; //应该放在这里
          }
           //下面是测试用的
    var chks=document.getElementsByName("checkbox");
           for(i=0;i<chks.length;i++){
    alert(chks[i].value);
           }  }
    }
    </script>
    <body bgcolor="#FFFFFF" text="#000000">
    <form name="form1" method="post" action="">
      <table width="100%" border="1" cellspacing="0" cellpadding="1">
        <tr> 
          <td width="6%">&nbsp;</td>
          <td width="7%">序号</td>
          <td width="34%">货号</td>
          <td width="32%">描述</td>
          <td width="21%">数量</td>
        </tr>
        <tr> 
          <td width="6%"> 
            <input type="checkbox" name="checkbox" value="0" >
          </td>
          <td width="7%">1.</td>
          <td width="34%"> 
            <input type="text" name="textfield2" disabled>
          </td>
          <td width="32%"> 
            <textarea name="textfield" disabled></textarea>
          </td>
          <td width="21%"> 
            <input type="text" name="textfield3" disabled>
          </td>
        </tr>
        <tr>
          <td width="6%">
            <input type="checkbox" name="checkbox" value="0" >
          </td>
          <td width="7%">2.</td>
          <td width="34%">
            <input type="text" name="textfield4" disabled>
          </td>
          <td width="32%">
            <textarea name="textfield5" disabled></textarea>
          </td>
          <td width="21%">
            <input type="text" name="textfield6" disabled>
          </td>
        </tr>
        <tr> 
          <td width="6%"> 
            <input type="checkbox" name="checkbox" value="0">
          </td>
          <td width="7%">3.</td>
          <td width="34%"> 
            <input type="text" name="textfield22" disabled>
          </td>
          <td width="32%"> 
            <textarea name="textarea" disabled></textarea>
          </td>
          <td width="21%"> 
            <input type="text" name="textfield23" disabled>
          </td>
        </tr>
      </table>
    </form>
    </body>
    </html>
      

  7.   

    freefalcon(心宇):还是没有符合要求!!,我看这个是很难实现了!算了,找其他方法吧,我会给你分的!!
      

  8.   

    楼主说这话让我感到惭愧
    我想不通还有哪儿不合要求?
    也许是我理解错了,首先按点击的先后顺序赋值,
    如果取消一个checkbox的选择,那么比它的值大的checkbox(即在其之后点击的)的值将都减小1,这是为了防止产生编号上的空缺
    如果一个取消了的checkbox再次被选中时,它将被视为最后一个选中的,即不管它前面是否被选中
    总之,一定是按照选择的先后顺序来赋值的
    我不知道是否存在bug,但至少我没有发现
      

  9.   

    freefalcon(心宇) :
    多谢你的帮忙,  还差一点的是,第一个被选中的 值要设置为1,依此类推,不过问题解决了,又出来一个更大的问题,烦,唉!!