2014-07-02 103 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. 
      } 
} 
相關問題