2014-07-02 79 views
0

我有以下代码,我认为它很接近,但我错过了一些东西。Javascript从单个下拉列表中填充2个文本框

var mydropdown = document.getElementById('dropdown'); 
mydropdown.onchange = function(){ 
    var fullString = this.value; 

    var mySplitResult = fullString.split(".");\ 
    for(i = 0; i < mySplitResult.length; i++){ 
     document.getElementById('a') + i.value = mySplitResult[i]); 
     } 
} 

的HTML如下:

<select id="dropdown"> 
    <option value="">None</option> 
    <option value="1220.2440">1220x2440</option> 
    <option value="640.480">640x480</option> 
</select> 

<p>Sheet Size <input id="a0" name="a0" size="10"> X <input id="a1" name="a1" size="10" /></p> 

任何帮助,将不胜感激

+0

您是否尝试过包括'getElementById'方法里面的'i'变量?就像:'document.getElementById('a'+ i).value = mySplitResult [i]);' – faino

+0

你犯了一个小错误,把括号中的i加入,改成这行'document.getElementById('a '+ I)。价值= mySplitResult [1]);' –

+0

审核您的代码后,看看为[这个小提琴(http://jsfiddle.net/5D3Uf/2/)... – faino

回答

1

有在你的代码的两个错误:

  1. 作为@faino和@Mustafa说,因为它缺少自己的身份证补(你把到diferentiate他们整你的目标不是你的文字输入,0和1)。
  2. 在同一行末尾还有一个)

所以更新JavaScript代码:

// try to use addEventListener, 
// so you can add more than one listeners for the same event 
mydropdown.addEventListener("change", function(){ 
    var fullString = this.value; 

    var mySplitResult = fullString.split("."); 

    for(i = 0; i < mySplitResult.length; i++){ 
     document.getElementById('a' + i) = mySplitResult[i]; 
     } 
}); 
0

你的函数有小的失误之一是的getElementById函数的参数和一个我所提到的波纹管作为注释。

function(){ 
     var fullString = this.value; 

     var mySplitResult = fullString.split("."); 

     for(i = 0; i < mySplitResult.length; i++){ 
      document.getElementById('a' + i).value = mySplitResult[i]; //Here was a ')' which was causing syntax error. 
      } 
} 
相关问题