增加了三行下拉单选框,得到的结果是:
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>希望有时间帮我看看.
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>希望有时间帮我看看.
动态添加的元素id都写死了,getElementById得到的是第一个id符合条件的元素...
<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>
但是问题仍然没有解决.
第二次更改NAME时,后面VAR的值还是没有相应更新.