增加了三行下拉单选框,得到的结果是:
NAME      VAR
ONE       1
TWO       2
THREE     3
此时是正常显示,但是当我要更改第一行的值,用ONCHANGE得到的值有错误.
比如我更改ONE->TWO,相应的值应该是1->2,可是结果却仍然是1,没有改变:
NAME      VAR
TWO       1
TWO       2
THREE     3
我的代码如下:
<html>
<head>
<script language="javascript" type="text/javascript">
var oop = new Array();
oop[1] = "one";
oop[2] = "two";
oop[3] = "three";
var toop = new Array();
toop[1]  = "1";  
toop[2]  = "2";  
toop[3]  = "3";  
var argument ;
var valbox ;function AddRowArg(tablename){
this.tablename = document.getElementById("tablename");
    var newRow = tablename.insertRow(-1);    var Cel1Select = newRow.insertCell(0);
Cel1Select.innerHTML = '<select id="argument" onchange="getValue(argument)" >';
argument = document.all.argument; argument.options[0] = new Option("-Faites un choix-","0");
for(var i=1; i<oop.length; i++){
argument.options[i] = new Option(oop[i],oop[i]);
} var CellVar = newRow.insertCell(1);
    CellVar.innerHTML = '<input type="text" id="valbox" >';
}
function getValue(argument){
this.argument = document.getElementById("argument");
valbox = document.all.valbox;
valbox.value = "  "+toop[argument.selectedIndex];
}
    </script>
</head><body>
    <table border="1" id="tablearg">
<tr><td>name</td><td>var</td></tr>
</table><br> <form name="fbody"  method="post">
<input type="button"  value="Addition" OnClick="AddRowArg(tablearg)">
</form></body>
</html>希望有时间帮我看看.

解决方案 »

  1.   

    你的这段代码copy过来测试,第二次点按钮就报argument.options为空或不是对象...
    动态添加的元素id都写死了,getElementById得到的是第一个id符合条件的元素...
      

  2.   

    <html>
    <head>
    <script language="javascript" type="text/javascript">
    var oop = new Array();
    oop[1] = "one";
    oop[2] = "two";
    oop[3] = "three";
    var toop = new Array();
    toop[1]  = "1";  
    toop[2]  = "2";  
    toop[3]  = "3";  
    var argument ;
    var valbox ;function AddRowArg(tablename){
    this.tablename = document.getElementById("tablename");
        var newRow = tablename.insertRow(-1);    var Cel1Select = newRow.insertCell(0);
    Cel1Select.innerHTML = '<select id="argument" onchange="getValue(this)" >';
    argument = document.all.argument;
    if(argument.length) argument = argument[argument.length-1];
    argument.options[0] = new Option("-Faites un choix-","0");
    for(var i=1; i<oop.length; i++){
    argument.options[i] = new Option(oop[i],oop[i]);
    } var CellVar = newRow.insertCell(1);
        CellVar.innerHTML = '<input type="text" id="valbox" >';
    }
    function getValue(obj){
    argument = document.all.argument;
    var n = 0;
    if(argument.length){
    for(var i=0;i<argument.length;i++){
        if(argument[i] == obj){n=i;argument=argument[i];break;}
    }
    }
    valbox = document.all.valbox;
    if(valbox.length) valbox = valbox[n];
    valbox.value = "  "+toop[argument.selectedIndex];
    }
        </script>
    </head><body>
        <table border="1" id="tablearg">
    <tr><td>name</td><td>var</td></tr>
    </table><br> <form name="fbody"  method="post">
    <input type="button"  value="Addition" OnClick="AddRowArg(tablearg)">
    </form></body>
    </html>
      

  3.   

    FF下没问题?这段在FF下根本没有任何效果
      

  4.   

    谢谢各位的回复.
    但是问题仍然没有解决.
    第二次更改NAME时,后面VAR的值还是没有相应更新.
      

  5.   

    在IE上运行没有问题了,但是在FF上还是一样的效果.