2016-09-27 72 views
1

如何從jquery多選精選按鈕中刪除選定的項目後點擊重置按鈕?刷新jquery多選精選

<select data-placeholder="Select" id="options" class="chosen-select" maxwidth="50px" multiple tabindex="15" ></select> 

我已經嘗試了幾種方法,沒有運氣。這是我的代碼:

$("#options").multiselect('refresh'); 
    $("#options").multiselect('clearSelection'); 
    $('#options').multiSelect('deselect_all'); 
    $("#options").find('option:selected').removeAttr("selected"); 

上面仍然顯示選定的項目,如圖像後,

enter image description here

任何幫助,將不勝感激。

+0

該截圖看起來不像多選 - 它看起來像Chosen( https://harvesthq.github.io/chosen/)或標記(http://aehlke.github.io/tag-it/)...你是否100%確定哪個庫正在使用?編輯:實際上基於類,它是一個選定的字段...使用'.chosen()'方法,或將屬性設置爲false(即'$(「#options」)。find('option:selected') .prop('selected',false)'),而不僅僅是刪除屬性;然後觸發更新:'$(「#options」)。trigger('chosen:updated');' –

回答

0

我不是太熟悉的多項選擇,但據docs它看起來像您可以使用取消所有:

$('#your-select').multiSelect('deselect_all'); 
+0

我也試過這個。不適合我。 –

1

這不是多選,它是一個jQuery選擇字段,它看起來像。這裏的回答涵蓋了你:'select all' and 'remove all' with chosen.js - 剛剛從選項中刪除選定的屬性然後更新所選元素

$("#options").find('option:selected').prop('selected',false); 
$("#options").trigger('chosen:updated'); 

如果您正在使用的選擇是舊版本,那麼你的正確的觸發可能是:李斯特:更新,例如。

$("#options").trigger('liszt:updated'); 

但是,您需要將該詳細信息添加到問題中以供我確切地說。另外,如果你已經把它初始化爲multiSelect,我預測你將來會遇到問題。我會確定你想要使用哪個部件,並確保你只初始化它/調用它作爲該部件的方法,並且該部件只有

+0

是的,它是jquery選擇了多個,但這個答案不適合我。選定的項目仍然存在。 –

+0

然後我建議你可能會遇到與將它初始化爲兩種不同類型的小部件有關的問題。第一行是取消選擇列表中所有選項的可接受方法(http://stackoverflow.com/questions/1857781/best-way-to-unselect-a-select-in-jquery)第二行是接受的更新所選小部件的方式(https://harvesthq.github.io/chosen/options.html#triggerable-events)。你也可能使用過時的選擇版本,如果我記得正確的話,它有不同的觸發器。您需要在問題中添加更多信息以獲取幫助。 –

+0

但要清楚,如果您打電話以'$('#options')開始。「multiSelect(...',那麼我預計什麼都不會適用 - multiSelect方法不適用於選定的字段,並且會可能會導致該領域的問題。 –