2011-08-03 51 views
0

我有多個選擇字段,每個字段都有多個選項。 因此,通過使用jquery獲取相應的選定選項內容,我將能夠獲得選定的選項內容。但是,這項工作爲第一個選擇領域。但是,並不適用於其他人。其他人繼續引用第一個選擇字段選擇的選項內容,而不是它擁有的。請指導我!謝謝!Jquery Mulitple選擇字段錯誤

My Select fields 

<select id="resource_dd" name="resource_dd"> 
    <option selected="selected" value="nil1">No resources.</option> 
    <option value="1">Week1</option> 
    <option value="2">Resource1</option> 
</select> 


<select id="module_dd" name="module_dd"> 
    <option selected="selected" value="nil2">No restriction.</option> 
    <option value="1">IT1234</option> 
    <option value="2">IT2345</option> 
</select> 

Jquery檢索選定的內容。

$("#module_dd").change(function (event) { 
    var option = $("this").children(); 
    var module_id = $(option+":selected").val(); //module_id get 'nil1' as content instead of nil2 

}); 
+1

在這段代碼中遇到很多問題......不管你決定接受哪一個,都要閱讀所有答案並應用它們。 – JAAulde

回答

2

試試這個,它會給你選定的值。

$("#module_dd").change(function (event) { 
    var module_id = $(this).val(); 
}); 
+0

+1事實上,不需要過度複雜化。不過,我懷疑這是一個減少的情況,他正在做關於select元素的其他事情。無論哪種方式,但你是正確的,沒有必要發現哪個選項被選中,如果他想要的只是它的價值。 – JAAulde

0

問題代碼

var option = $("this").children(); 
var module_id = $(option+":selected").val(); 

你不能Concat的選擇字符串到JQ集合對象。你需要過濾的選項集合那些通過或者選定:

var option = $(this).children(":selected"); 

或者

var option = $(this).children(); 
var module_id = option.filter(":selected").val(); 
0

這是發生,因爲你引用$("#module_dd")

您需要添加其他功能並將其更改爲$("#resource_dd")才能獲得其他select字段。

+0

'#module_id'是一個有價值的選項,'nil2',我相信這是他的價值...... – JAAulde

1

首先,您應該說$(this)而不是$("this")

其次,$(event.target)在這裏可能更合適。

第三,使用.children$(event.target).children(":selected")會得到你想要的。

+0

+1 LOL,我甚至沒有注意到這個''而不是' 'this'。 – JAAulde

0

請參閱禮Courtwright的答案,但除了這一點,你應該這樣做$("select")$("#module_dd, #resource_dd")同時針對select領域。