我从下拉菜单创建输入字段,值存储在数组中,但第三个输入字段存储上下拉菜单的值。只是第三个输入字段?!? 我能找到这种情况发生的原因吗?!? 代码html:
<form name="myform1">
<select id="polja2" onchange="Gen()">
<option value="1">1</option>
<option value="2">2</option>
</select>
</form>
<form name="myform">
<select id="polja" onchange="Gen()">
<option ></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
</form>
<table id="t">
</table>
javascript函数Gen()=
function Gen()
{
var val = document.getElementById("polja");
val=(val.options[val.selectedIndex].value);
var valGrup = document.getElementById("polja2");
valGrup=(valGrup.options[valGrup.selectedIndex].value);
var e = document.getElementById("t");
e.innerHTML = "Vrijednosti: <br>";
var i;
var j;
for(i=0;i<valGrup;i++)
{ e.innerHTML += "Grupa: "+i+"<br>";
e.innerHTML += "<input type='text' id='naziv" + i +"'/>"+"<br>";
for(j=0;j<val;j++)
{
e.innerHTML += "<input type='number' id='polja"+j+"'/>"+"<br>";
}
}
}
第二个javascript函数,其中取值并放入数组
function korekcija(a){
var scores=new Array();
var scorispis=new Array();
var val = document.getElementById("polja");
val=(val.options[val.selectedIndex].value);
for(var i=0;i<val;i++){
alert(scores[i]);--->**it shows that the third value is the value of the upper dropdown menu number??(the "polja2")**
scores[i]= document.getElementById("polja"+ i).value ;
scorispis[i]= document.getElementById("polja"+ i).value ;
}
VrZaRad(scores, scorispis);
}
答案 0 :(得分:2)
因为第三项的"polja"+j
会产生"polja2"
,而id
已用作第一个下拉菜单的id
。
更改第一个select
元素的{{1}},或在构造动态DOM元素时使用不同的前缀。