2013-04-22 68 views
0

我填充我的選項選擇框的onload(阿賈克斯,在頁面加載),並且工作正常jQuery的委託功能填充的選擇框(jQuery的2.0)

<select name="variety" id="resorts"><option value="">Select </option></select> 

要觸發選項(轉到URL)我使用下面的功能。

("body").delegate("#resorts","change", function(e){ 
    window.location='http://skiweather.eu/webcams/' + $(this).children("option:selected").attr("value"); 
    return false; 
}); 

它似乎不工作,它返回'未定義'。哪裏不對。

也許填充函數?

function populate_cantons(){$.getJSON("http://skiweather.eu/v3/ajax/fetch_canton.php",{country:$("#country").val()},function(a){var b=$("#cantons");var c=b.prop("options");$("option",b).remove();$.each(a,function(a,b){c[c.length]=new Option(b["canton"])});b.prepend("<option selected>Select region</option>")})} 

http://skiweather.eu/latest/(選擇框位於頁面右上角

回答

1
$(this).children("option:selected").attr("value"); 

您嘗試讀取value屬性,但你option元素沒有這樣的屬性。您可以添加它,也可以讀取option元素的文本。

+0

我更喜歡將值添加到填充函數,但我對如何做到這一點有些困惑。 – mark 2013-04-22 15:36:58

+0

value屬性可作爲Option的第二個參數提供給構造函數。因此,對於各州來說,它可能是新選項(b [「resort_us」],b [「resort_us」])''的新選項(b [「canton」],b [「canton」])''。 – zeroflagL 2013-04-22 16:12:23

+0

謝謝zeroflagL!有用 – mark 2013-04-22 16:26:56

0

嘗試:

$("body").delegate("change", "#resorts", function(e){ 
    window.location='http://skiweather.eu/webcams/' + $(this).val(); 
    return false; 
}); 
+0

不,不起作用 – mark 2013-04-22 14:25:26