javascript输入字段或数组的行为很奇怪

时间:2014-09-30 18:23:09

标签: javascript html5

我从下拉菜单创建输入字段,值存储在数组中,但第三个输入字段存储上下拉菜单的值。只是第三个输入字段?!? 我能找到这种情况发生的原因吗?!? 代码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);   
    }

1 个答案:

答案 0 :(得分:2)

因为第三项的"polja"+j会产生"polja2",而id已用作第一个下拉菜单的id

更改第一个select元素的{{1}},或在构造动态DOM元素时使用不同的前缀。