var column_id =1; //记录是第几行
   var testId=1;
    function addRow()
  {
    var root = document.getElementById("tbody");
    var allRows = root.getElementsByTagName('tr');
    var cRow = allRows[1].cloneNode(true)
    column_id ++;
    cRow.childNodes[1].childNodes[0].name='columnName'+column_id;
     cRow.childNodes[1].childNodes[0].value="";
    cRow.childNodes[2].childNodes[1].name='columnType'+column_id;
    
    cRow.childNodes[3].childNodes[1].name='isForAdd'+column_id;
    cRow.childNodes[3].childNodes[3].name='isForAdd'+column_id;
    testId++;
    cRow.childNodes[3].childNodes[1].id='test'+testId;
    testId++;
    cRow.childNodes[3].childNodes[3].id='test'+testId;
      
    cRow.childNodes[4].childNodes[1].name='addType'+column_id;
    var insertPos =  document.getElementById("insertPos");
    root.insertBefore(cRow , insertPos);
  //  root.appendChild(cRow);
  }
下面是克隆的那行HTML<tr>
<td>
字段名
</td>
<td width="20%">
<input type="text"  name="columnName1">
</td>
<td  align="left" width="20%">
  字段名称
<select id="tableSel" name="columnType1">
<option value="varchar(20)">
varchar(20)
</option>
<option value="varchar(40)">
varchar(40)
</option>
<option value="varchar(60)">
varchar(60)
</option>
<option value="varchar(80)">
varchar(80)
</option>
<option value="varchar(110)">
varchar(110)
</option>
<option value="varchar(200)">
varchar(200)
</option>
<option value="int">
int
</option>
<option value="date">
date
</option>
<option value="long">
long
</option>
</select> </td>
<td width="20%">
用于添加
<input type="radio" checked="checked" id="test1"  name="isForAdd1"  value="1">

<input type="radio" name="isForAdd1" id="test2"  value="0"  >

</td>
                     <td width="20%" align="left">
用什么控件添加
<select id="addType1" name="addType1">
<option value="text">
text
</option>
<option value="select">
select
</option>
<option value="date">
时间控件
</option>
<option value="addr">
    地址控件
</option>
</select>
</td> </tr>

解决方案 »

  1.   

    <input type="radio" checked="checked" id="test1"  name="isForAdd1"  value="1"> 
    <input type="radio" name="isForAdd1" id="test2"  value="0"  > 
    <input type="radio" checked="checked" id="test1"  name="isForAdd2"  value="1"> 
    <input type="radio" name="isForAdd2" id="test2"  value="0"  > 
    上面4个radio控件时可以同时让2个被选中, 但是用javascript生成上面的4个控件就只能让一个被选中, JS代码在上面有了, 生成的时候都给他们动态生成了不同的name和id
      

  2.   

      问题已解决, 现告诉问题出在哪里.    在javascript中 是不能动态改变html控件的name的, (能改但改了不会立即生效, 只有在表单提交后才生效)  所以可以通过其它的方式动态识别新创建的控件.