代码如下!<%@ page contentType="text/html; charset=gb2312" %>
<html>
<head>
<title>查询窗口</title>
<script language="JavaScript">function changeValue(obj){
if(obj.value == 0){
document.getElementById("result").value = "f117"; 
}else {
document.getElementById("result").value = "gaofei"; 
}
}function insertrow(){
var newrow = document.all.tbl.rows[0].cloneNode(true); //克隆一行
document.all("newTB").appendChild(newrow); //添加刚才克隆的一行
}function delerow(){
var numrow = document.all("newTB").rows.length;
if (numrow == 0) {
alert("此行无法删除!");
return false;}
document.all("newTB").deleteRow(numrow-1);
}
</script>
</head><body class="dialog_body">
<form method="POST" onSubmit="return doSubmit(this)">
<fieldset style="margin:5px;width:630px;">
<legend>查询条件</legend>
  <div align="center" class="inputblock" style="width:930;height:150;overflow:auto;">
    <table border="1" width="900" cellpadding="0" cellspacing="0" class="table">
      <tr>
       <td class="title" width="16%">列表框</td>
       <td class="title" width="16%">结果</td>
      </tr>
     </table>  
     <table border="1" width="900" cellpadding="0" cellspacing="0" class="table">
     <tbody id="tbl"> 
      <tr>
        <td width="16%">
         <select id="pid" name="project" onchange="changeValue(this)">
         <option value=""></option>
<option value="0">人员编号</option>
<option value="1">姓名</option>
</select>
        </td>
        <td width="16%">
         <input id="result" type="text" value="" readonly="true">
        </td>
      </tr>
    </tbody>
   <tbody id="newTB">
  
   </tbody> 
    </table>
  </div>
</fieldset>
<div align="right" style="margin:10px;">
<input type="button" onClick="insertrow();" value="增加一行">
<input type="button" onClick="delerow();" value="删除一行">
</div>
</form>
</body>
</html>请先增加一行 即:第二行
然后第二行选则下拉列表框,发现本应在第二行显示的结果值跑到第一行去了!

解决方案 »

  1.   

    document.getElementById("名字id") 只取这个名字的第一个元素。可能你需要from1.名字id[i]访问你的第i行元素
      

  2.   

    function changeValue(obj){
    if(obj.value == 0){
    obj.parentElement.parentElement.cells[1].children[0].value = "f117"; 
    }else if(obj.value == 1){
    obj.parentElement.parentElement.cells[1].children[0].value = "gaofei"; 
    }else 
    obj.parentElement.parentElement.cells[1].children[0].value = ""; }
    id是对象的唯一标识,一个页面内不能有两个对象的id是相同的
    name是可以重复的
    clone节点的时候要注意id重复问题
    你也可以用getElementsByName来得到文本框的数组,也可以实现这个功能