2012-08-30 72 views
2

我正在使用多選(multiselect website)jQuery插件。它完美地工作,但爲了我的目的,我需要在我的頁面上添加一個重置按鈕,單擊它時,它將刪除所有已選擇的選項,並將多重選擇重置爲默認狀態。jQuery multiselect無法通過單擊事件刪除選項

我已經設法通過刪除選擇框中的所選屬性來刪除選項,但它不會更新多選中的html,因此實際上選擇框沒有任何選擇,只剩下html保留一樣。

不幸的是,這個插件沒有很好的文檔記錄,我不得不使用這個插件(根據客戶請求),所以其他人都知道如何做到這一點?

回答

1

此多選控件使用jQuery UI控件框架,但似乎沒有提供refresh()方法來在增強控件的狀態更改時更新控件。

你可以,但是,通過一個完整的去破壞/創建循環效仿:

$("#yourElement").multiselect("destroy").multiselect({ 
    // Your options... 
}); 
+0

嘿@Frederic,謝謝你的回覆!我已經複製了你的建議,但我的js打破了一個錯誤「$ .widget.prototype.destroy is undefined」。多選可能沒有銷燬選項嗎? – mauzilla

+0

@Mauritz,這個小工具肯定會公開一個'destroy()'方法(源碼[這裏]的第134行)(https://github.com/michael/multiselect/blob/master/js/ui.multiselect.js) )。該錯誤可能是由jQuery UI的兼容性問題引起的,您可以使用哪個版本?另外,你能否在錯誤信息中確認'$ .widget'沒有大寫'W'? (它應該。) –

+0

我可以確認它肯定有一個小寫「W」,我使用jQuery UI版本1.8.21.min – mauzilla

1

這很簡單,你需要刪除屬性原來的選擇 ,只是刷新內容。

$("#my-select option[value=\""+this.valeur+"\"]").remove(); 
$('#my-select').multiselect('refresh'); 
相關問題