2009-11-02 45 views
3

傳統上我們寫jQuery的獲得從下拉值向下選擇

var value = $("#drop-down-id").val(); 

來獲取值。 在我的情況下,一些選項包含多個單詞,其中包含空格,如 「允許所有」,「互聯網用戶」等。 我在VALUE中獲得的僅僅是「允許」,也就是說,jquery正在修剪白色空間。有沒有其他方法可以解決這個問題?

+1

如果您可以包含顯示確切值的HTML下拉菜單,這可能會有所幫助。 – spaetzel

回答

9

如果您有包裹在​​3210的價值,你不使用VAL直接屬性,你可以這樣做:

var value = $('#drop-down-id option:selected').text(); 
+0

感謝您的回覆,您的解決方案工作:) – uday

+1

可能已經爲你工作,但請知道區別。 text()屬性獲取DropDownList當前顯示的內容,而val()屬性是「後面」值。

+0

這是一個很好的觀點..我檢查了螢火蟲,「價值」已被修剪爲一個字。所以,.text正在工作,而不是.value()。 基本上我從一個json對象動態填充它。將不得不檢查出來。不管怎麼說,還是要謝謝你! – uday

6

嘗試:

var value = $("#drop-down-id option:selected").attr("value"); 
+0

感謝您的回覆,但它沒有奏效。 – uday

1

這是沒有意義的。應該沒有必要獲取選項文本。如果您需要這樣做,那麼您的選項元素可能在服務器端以錯誤的方式填充。

檢查HTML源代碼,您可能會忘記引用選項的value屬性。

這是一個錯誤的

<option value=John Doe>John Doe</option> 

它只會返回第一個字爲實際選擇的值,因爲空間實際上是在HTML屬性分離器;現在您將獲得「John」作爲價值,而「Doe」被視爲另一個(不存在的)HTML屬性。

這是一個正確的

<option value="John Doe">John Doe</option> 

這樣你會得到 「李四」 的價值。