2011-11-24 161 views
22

我有一個多選下拉列表,其中我選擇了「測試2」和「測試3」選項。取消選擇jQuery中的多選下拉列表中的所有元素

<select id="edit-rec" class="form-select" multiple="multiple" name="rec[]"> 
<option value="6012">Test 1</option> 
<option value="8436">Test 2</option> 
<option value="4689">Test 3</option> 
<option value="6784">Test 4</option> 
</select> 

我有一個名爲「全部取消」的按鈕。點擊此按鈕時,應取消選擇所有選定項目。在這種情況下,我以前選擇的項目「測試2」和「測試3」現在應該被取消選擇。

我該如何使用jQuery來完成這項工作?

回答

39
$("#edit-rec option:selected").removeAttr("selected"); 
+9

最好使用'$( 「#編輯錄音選項:選擇」)丙( 「選擇」,假);' – Madeyedexter

4
$("#edit-rec option:selected").removeAttr("selected"); 
9

嘗試 -

$("#edit-rec > option").attr("selected",false); 

演示 - http://jsfiddle.net/LhSBu/

+0

您的代碼看起來非常好。但是你能否解釋語法$(「#edit-rec> option」) – Fero

+0

'$(「#edit-rec> option」)'應該選擇任何'option'元素,這些元素是直接子元素'#edit-rec'元件。見 - http://api.jquery.com/child-selector/ – ipr101

+1

我建議刪除'>'部分。在這種情況下這沒有意義,並且會使用''作爲'

2

可以做這樣的事情JS小提琴用於設置點擊單選按鈕 http://jsfiddle.net/x5ck3/

$('#rdClear').click(

function() { 
    $("#edit-rec option:selected").removeAttr("selected"); 
}); 
3
$("#butt").click(function() { 
    $("#edit-rec > option").removeProp("selected"); 
}); 

這是與新的jQuery版本正確

+0

非常糟糕的想法,從https://api.jquery.com/removeProp/這將完全刪除屬性,並且一旦刪除,不能再添加到元素。使用.prop()將這些屬性設置爲false。 – MikeT

5

單選按鈕的點擊,你可以使用這個

$("#edit-rec option").each(function(){ 

    this.selected=false; 

}); 
5

這將刪除該多選下拉列表所有勾選的選項:

$(」 #ddlTradeShow')多選( 「clearSelection」);

+0

請給你的答案補充一點解釋,使其更易讀 – Aleksej

+1

它在Bootstrap Multi-select中起作用。 – chhameed

0

現在有通過API直接提供了另一種可能性:

$('#edit-rec').multiSelect('deselect_all'); 

做工精細,在這裏你可以找到關於它的更多的選擇:http://loudev.com/

0

,我發現取消選擇所有的最簡單方法多選下拉菜單中的選項使用.val([])

$("#select").val([]); 
相關問題