本帖最后由 hailangbei 于 2009-08-20 18:15:36 编辑

解决方案 »

  1.   

    我把你的源代码中的n.setAttribute("id",null);  改称n.setAttribute("id",1); 方便看效果.在你的addRow函数的最后行,即  row.parentNode.insertBefore(nln,ib); 添加以下代码://寻找刚添加的tr
    var targetTr=document.getElementById("1");
            //寻找tr的firstChild的nextSibling,因为,火狐浏览器中会把新添加tr后的空格判断为其 //firstChild,所以真正的td是firstChild的nextSibling
    var targetTd=targetTr.firstChild.nextSibling;
    //每次只添加3个td,所以循环就做3次吧
        for(i=0;i<3;i++){
            //设置td属性中name的值为i
    targetTd.setAttribute("name",i);
                    //同理,新添加的td后的空格也会被判断为其nextSibling,所以,真正的下一个td是其//nextSibling的nextSibling
            targetTd=targetTd.nextSibling.nextSibling;

    }以上程序在火狐中测试成功IE是否会这么判断没有测试过,不过,相信你应该做得出相应的程序,希望这些会对你有用:)
      

  2.   

    String[] para = request.getParameterNames(); 
      

  3.   

    回1楼,确实对我有一定的启发。
    按照你的应该是这样
      function   addRow(){   
      var   row   =   document.getElementById("ModelRow"); 
      var   ib    =   document.getElementById("insertBefore");     
      var   n     =   row.cloneNode(true);   
      n.setAttribute("id",1); 
      var targetTr=document.getElementById("1");  
      var targetTd=targetTr.nextSibling; 
        for(i=0;i <3;i++){ 
                            targetTd.setAttribute("name",i); 
                            targetTd=targetTd.nextSibling;    
                            }
      row.parentNode.insertBefore(n,ib);}
    但是好像新增加的tr,id还是modelrow,里面td的name也没变而且如果在增加一行,不是还一样。
      

  4.   

    点点看,你就知道答案了<html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <META http-equiv="Content-Style-Type" content="text/css">
        </head>
        <script language=javascript>
            var TH_HEIGHT="20px";
            var THCOLOR="#ffff99";
            var THBGCOLOR= "#ccecff";
            var NEW_COLOR="#ffffff";
            var rows=0;
            function createEventTable() {
                var newRow,col1,col2,col3;
                var ln = document.getElementById("tb1").rows.length;
                if( ln > 0){
                    for(var i=0; i<ln; i++){
                        if(document.getElementById("tb1").rows.length <= 0)break;
                        document.getElementById("tb1").deleteRow(-1);
                    }
                }
                for(var colno=0; colno<rows; colno++){    
                    newRow = document.getElementById("tb1").insertRow(-1);
                    newRow.id = 'r'+colno;
                    document.getElementById("r"+colno).height = TH_HEIGHT;
                    document.getElementById("r"+colno).bgColor = THCOLOR;
                    col1=newRow.insertCell(0);
                    col2=newRow.insertCell(1);
                    col3=newRow.insertCell(2);
                    col1.id="col1"+colno
                    col2.id = "col2"+colno;
                    col3.id = "col3"+colno;
                    col1.innerText = "列一"+colno;
                    col2.innerText = "列二"+colno;
                    col3.innerText = "列三"+colno;
                    col1.onclick=alertMe
                    col2.onclick=alertMe
                    col3.onclick=alertMe
                }
            }
            function alertMe(){
                alert("我的ID是"+this.id)
            }
            window.onload=function(){
             
            }
     
    function addline(){
    rows++;
    createEventTable();
    }
        </script>
        <body >
    <div><input type=button onclick=addline()  value="  +   ">
    </div>        <TABLE  cellSpacing="0" borderColorDark="black" cellPadding="1" borderColorLight="black"  border="1" ID="Table1">
                <thead>
                <COLGROUP>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                    <COL align="center">
                    </COL>
                <TR height="22px" bgColor="#ccecff">
                    <TH width="36" >列1</TH>
                    <TH width="36" >列2</TH>
                    <TH width="36" >列3</TH>
                </TR>
            </thead>
            <TBODY id="tb1">
            </TBODY>
        </TABLE></body>
    </html>
      

  5.   

    1楼和4楼是两种不同的方法,都是给表格的tr、td命名,
    但我所说的name属性是表格内部的input文本框,
    望再指点一哈!!!
      

  6.   

    在创建表格方法中 for(var colno=0; colno<rows; colno++){    
                    newRow = document.getElementById("tb1").insertRow(-1);
                    newRow.id = 'r'+colno;
                    document.getElementById("r"+colno).height = TH_HEIGHT;
                    document.getElementById("r"+colno).bgColor = THCOLOR;
                    col1=newRow.insertCell(0);
                    col2=newRow.insertCell(1);
                    col3=newRow.insertCell(2);
                    col1.id="col1"+colno
                    col2.id = "col2"+colno;
                    col3.id = "col3"+colno;
                  /*如果增加名字属性,这样加
                     col1.name="col1"+colno
                    col2.name= "col2"+colno;
                    col3.name= "col3"+colno;                   /*
                    /*如果加input的话。这样加
                     col1.innerHTML="<input name="+自定义名+">";
                     col2.innerHTML="<input name="+自定义名+">"; 
                      col3.innerHTML="<input name="+自定义名+">";
                     */                col1.innerText = "列一"+colno;
                    col2.innerText = "列二"+colno;
                    col3.innerText = "列三"+colno;
                    col1.onclick=alertMe
                    col2.onclick=alertMe
                    col3.onclick=alertMe
                }自定义名可以是个循环变量,名字+行+列,这样你就可以根据第几行,第几列获得你的input的name了
      

  7.   

    IR中创建表单控件用 obj = document.createElement("<input name='xxx'>"); 这样就有name了.如果只是为了递交,用同名的控件问题不大,服务器端可以根据分割符, 读取。
    比如asp的话:<%
    ' Request("stand1").count 取得同名字段数量
    Response.Write Request("stand1")(2) ' 取得指定的同名字段
    %>
    <html>  
      <head>  
      <meta  http-equiv="Content-Type"  content="text/html;  charset=gb2312">  
      <title>无标题文档 </title>  
      </head>  
      <script  language="javascript">  
      <!--  
      function  addRow(){  
      var  row  =  document.getElementById("modelRow");  
      var  ln    =  row.nextSibling;  
      var  ib    =  document.getElementById("insertBefore");  
      var  n      =  row.cloneNode(true);  
      n.setAttribute("id",null);  
      var  nln  =  ln.cloneNode(true);  
      row.parentNode.insertBefore(n,ib  );  
      row.parentNode.insertBefore(nln,ib);  
      }  
      function  deleteRow(){  
      var  ib    =  document.getElementById("insertBefore");  
      var  line  =  ib.previousSibling;  
      var  row    =  line.previousSibling;  
      if(  row.id  ==  "modelRow"  )  
      {  
      alert('这是最后一项,不能删除');  
      return;  
      }  
      ib.parentNode.removeChild(line);  
      ib.parentNode.removeChild(row);  
      }  
      //-->  
      </script>  
      <body>
     <form method="post" action="test1.asp"> 
      <div  align="center">                                
      <input  type="button"  name="Submit"  value="增加一项"  onclick="addRow()">  
          <input  type="button"  name="Submit3"  value="减少一项"  onclick="deleteRow()">  
          <br>  
      </div>  
      <table  width="75%"  height="135"  border="0"  align="center"  cellpadding="0"  cellspacing="0"  id="ice">  
          <tr>    
              <td  width="43%"> <div  align="center"> <font  color="#FF0000"> <strong>工作目标 </strong> </font> </div> </td>  
              <td  width="28%"> <div  align="center"> <font  color="#FF0000"> <strong>考核标准 </strong> </font> </div> </td>  
              <td  width="29%"> <div  align="center"> <font  color="#FF0000"> <strong>分值 </strong> </font> </div> </td>  
          </tr>  
          <tr>    
              <td  height="30"  colspan="3">  <hr  align="center"  width="80%"  size="1"  noshade>    
              </td>  
          </tr>  
          <tr  id="modelRow">    
              <td> <div  align="center">    
                      <input  name="goal"  type="text"  value="这里输入工作目标">  
                  </div> </td>  
              <td> <div  align="center">    
                      <input  name="stand1"  type="text"  value="及时"  size="12">  
                      <br>  
                      <br>  
                      <input  name="stand2"  type="text"  value="准确"  size="12">  
                  </div> </td>  
              <td> <div  align="center">    
                      <input  name="stand1_score"  type="text"  value="3"  size="10">  
                      <br>  
                      <br>  
                      <input  name="stand2_score"  type="text"  value="5"  size="10">  
                  </div> </td>  
          </tr>  
          <tr>    
              <td  height="30"  colspan="3">  <hr  align="center"  width="80%"  size="1"  noshade> </td>  
          </tr>  
          <tr>    
              <td> <div  align="center">    
                      <input  name="goal"  type="text"  value="这里输入工作目标2">  
                  </div> </td>  
              <td> <div  align="center">    
                      <input  name="stand1"  type="text"  value="及时"  size="12">  
                      <br>  
                      <br>  
                      <input  name="stand2"  type="text"  value="准确"  size="12">  
                  </div> </td>  
              <td> <div  align="center">    
                      <input  name="stand1_score"  type="text"  value="2"  size="10">  
                      <br>  
                      <br>  
                      <input  name="stand1_score"  type="text"  value="8"  size="10">  
                  </div> </td>  
          </tr>  
          <tr>    
              <td  height="30"  colspan="3"> <hr  align="center"  width="80%"  size="1"  noshade> </td>  
          </tr>  
          <tr  id="insertBefore">    
              <td  height="30">&nbsp; </td>  
              <td  height="30">&nbsp; </td>  
              <td  height="30">&nbsp; </td>  
          </tr>  
          <tr>    
              <td  height="30">&nbsp; </td>  
              <td  height="30">&nbsp; </td>  
              <td  height="30">&nbsp; </td>  
          </tr>  
          <tr>    
              <td  height="30"  colspan="3"> <div  align="center">    
                      <input  type="submit"  name="Submit2"  value="确定提交">  
                  </div> </td>  
          </tr>  
      </table>
    </form>
      </body>  
      </html>