2010-07-08 43 views

回答

2

對於下拉:

$('idOfSelect').selectedIndex = x; 

對於文本:

$('IdOfInput').value = 'Foo'; 
+0

是否有任何其他方式去做這個。就像jQuery('#idOfSelect').val([2,4])或jQuery('#idOfInput').val('Foo') – YuanChen 2010-07-08 16:55:51

+0

關於select元素我只知道select元素的一個數組值。我怎麼把它變成selectedIndex – YuanChen 2010-07-08 17:01:08

8

基本上 - element.get("value");對於所有輸入,選擇和文字區域返回值,.set("value", value);設定它們(除了倍數)

使用多個選擇會更復雜 - 上述返回僅限FIRST,您需要執行element.getSelected().get("value")以接收一個值的數組(自己的.getSelected()將返回指向實際option元素的指針)

最後,要設置多個選擇,只有這樣我才能想到atm就是編寫自己的元素原型通過兒童按規定使用值節點,而且.set("selected", "selected")

讓我知道如果您需要任何幫助編寫後者

2

答案是大約倍數正確的,並且需要使用selectEl.getChildren('option').each(function(option)...

但即使是單在IE中選擇(我正在測試這在IE9中)如果每個選項中沒有「value」屬性,那麼Mootools將失敗,即 selectEl.set('value', value)不起作用。在FF中它可以工作,並且在IE中它可以工作,如果你設置每個元素的「value」屬性。

我的解決辦法是:

selectEl.getElements('option').each(function(option) { 
    option.selected = option.get('value')==value 
}); 

注意option.get( '值'),即使在IE瀏覽器,在沒有value性質的作品,MooTools的供應選項的text