2012-10-19 51 views
0

可能重複:
JavaScript - populate drop down list with array設置選擇框的值的JavaScript

我有以下select中,

<select name="supplier" id="supplier"><option></option></select> 

我想用設置此select框的值Javascript。變量Javascript可以是StringArray。這意味着如果它的String那麼在select框中將只有一個選項。如果是數組,select框應包含多個options。有人請幫我找到解決方案。在此先感謝....

我已經試過

document.getElementById('supplier').value="Option 1"; 

,但它不工作

+0

你想設置的選項或價值?它們是有區別的。該值是選定的選項。另外,你是否卡住了? –

+0

其選項..... –

+0

你有什麼嘗試?這看起來像是你要求某人做你的工作,而不是某個不工作的問題。 –

回答

1

我會建議使用jQuery,如果你是做了很多的DOM操作:

$("#supplier").append('<option value=1>My option</option>'); 

沒有jQuery:

var select = document.getElementById("supplier"); 
select.options[select.options.length] = new Option('Text 1', 'Value1'); 
+0

只有當他們使用jQuery ... –

+0

@FelixKling現在好嗎? –

+0

@FelixKling感謝您的編輯。現在您可以取消投票了。 –

1

嘗試此:

http://jsfiddle.net/f4yEt/

function addOptions(input) { 
    var sel = document.getElementById("supplier"); 
    if (typeof input === "string") { 
     input = [input]; 
    } 
    sel.options.length = 0; 
    for (var i = 0; i < input.length; i++) { 
     sel.options[sel.options.length] = new Option(input[i], input[i]); 
     // This APPENDS options 
    } 
} 

input參數可以是字符串或數組(字符串技術上它僅檢查,把它變成一個數組爲迭代),然後動態地追加一個選項爲數組中的每個項目。

1

要做到這一點,您需要創建節點中的節點。

var select = document.getElementById('supplier'); 
var option = document.createElement('option'); 
select.add(option); 

這裏是一個更大的教程,需要IE/FF的差異考慮在內: http://www.mredkj.com/tutorials/tutorial005.html

我會考慮使用jQuery的這一點。 Sujathan的回答有jquery。

0
//var varOpt = "test"; 
var varOpt = new Array('test1', 'test2', 'test3'); 
var sel = document.getElementById('supplier'); 

if(typeof varOpt === 'string'){ 
    sel.add(new Option(varOpt , varOpt)); 
} else { 
    for(key in varOpt) { 
     sel.add(new Option(varOpt[key], varOpt[key])); 
    } 
} 
1

jQuery的方法對數組

var array = ["item 1", "item 2", "item 3"]; 
$.each(array, function(i, value) { 
    $('#supplier').append($(document.createElement('option')).attr('value', i + 1).text(value)); 
});​ 

http://jsfiddle.net/NN8KS/

相關問題