2010-03-21 80 views
6

我有下面的代碼,我希望在選擇更改時加載值,並且最初也執行選擇加載(因爲FF'保存'drop的最後一個值在某些情況下)。

函數的選擇部分工作正常,但由於某些原因調用load2時,直接的$('#select1').valueundefined,即使當我檢查在Firebug的DOM之後負載select1.value有一個值。

如何在select1.value準備好後運行load2函數?當$('#select1')的所有元素都已初始化時,什麼事件會告訴我?

$(document).ready(function() { 
    //Setup change hook 
    $('#select1').change(function(event) { 
     //Remove the old options right away 
     $('#select2').find('option').remove(); 
     //Load the new options 
     load2(this.value); 
    }); 

    //Do load for current value 
    load2($('#select1').value); 
}); 

回答

6

AFAIK jQuery對象沒有任何value場。因此,我希望下面的語句來的undefined的值傳遞給load2()功能:

load2($('#select1').value); 

jQuery對象確實,但是,有一個val()功能。嘗試使用,而不是:

load2($('#select1').val()); 

另外,你應該能夠訪問DOM場value這樣的:

load2($('#select1').get(0).value); 
+0

+1這適用於我的Firefox。 – balpha 2010-03-23 12:52:43

+0

完美,謝謝。 – 2010-03-24 03:10:50

1

如果我理解正確,你可以檢查,看看是否存在一個值,然後運行它:

if ($('#select1').value) { 
    load2($('#select1').value); 
} 
+0

但問題是,我的第二個選擇列表不會被填充,這是正是我想要做的(填充該列表)。 – 2010-03-22 12:40:59

相關問題