2013-06-28 95 views
0

我正在用一個小小的腳本努力工作,這個腳本不該那麼辛苦......我正在捕捉select標籤的變化事件,並繼續使用一些ajax的東西。最後,我處理了ajax調用的響應,並且在某些情況下,我試圖「回滾」用戶的動作。+jQuery在<select>標籤中選擇一個特定的選項

所以他選擇了一個選項,選項通過ajax發送到服務器,服務器說「no你不能這樣做「,我會顯示一條警告消息,告訴用戶他不聰明,然後嘗試重新選擇第一個默認選項,即空白。

這裏的DOM部分:

<select class="closedStatus"> 
    <option data-requestid="2" value="-1">&nbsp;</option> 
    <option data-requestid="2" value="3">yes</option> 
</select> 

所以,我想選擇的選項設置回第一個,與value="-1"
但到目前爲止沒有運氣......這是我的代碼:

$('.closedStatus').val('-1'); 

我發現這在另一篇但這並不爲我工作...... 任何想法,爲什麼它不工作?

編輯:其實我真的很慚愧和愚蠢:這個問題是我在我的頁面標有.closedStatus類多<select>列表...當然,它沒有工作方式......

無論如何感謝您的幫助!

+2

對我來說工作得很好,你能不能展示腳本的其餘部分? – Spokey

+0

似乎工作正常http://jsfiddle.net/j08691/Hc9Tw/ – j08691

+0

http://jsfiddle.net/Hc9Tw/1/ – softsdev

回答

4

你可以查找option元素,其值= -1,然後selected屬性設置爲true:

$('select.closedStatus').find('option[value="-1"]').prop('selected', true); 

Working Demo

,因爲這是選擇選擇的第一個孩子,這是一個選項,並設置該選項的值,你在做什麼($('.closedStatus').first().val('-1');)將無法正常工作。我不確定這會有什麼影響(我不認爲你可以在選項元素上調用val('-1')),但如果它有效,它會將第一個選項的值更改爲-1,而不會影響選擇。

+0

這應該工作,因爲我在jsFiddle嘗試它,但不知何故,它不能在我的項目中工作...我編輯我的問題與一些更多的信息和jsFiddle。感謝您的幫助。 –

+0

我終於找到了什麼阻止了這個解決方案以及所有其他方面的工作。這是由於另一個js插件(「選擇」),它對待選擇列表的方式與預期不同。 –

1

它會爲你工作

變化

$('.closedStatus option[value=-1]').attr('selected','selected'); 

代替

$('.closedStatus').first().val('-1'); 
+0

所以您通過傳遞值來獲得元素的價值...非常有用 –

+0

請參閱證明其代碼有效的註釋,並且其他地方存在問題。 – Archer

+0

這應該工作,因爲我在jsFiddle嘗試它,但不知何故它不能在我的項目中工作...我編輯我的問題與一些更多的信息和jsFiddle。感謝您的幫助。 –

相關問題