[英]Update select2 contents while it is focused and idle
我正在使用以下代碼將數據動態加載到select2(版本2.5.3)小部件中。
var arr = [];
$.ajax(...); // Load data into the array
hiddenInput.select2({
data: { results: arr }
});
如果我專注於小部件的搜索字段,則只有在以下情況下才會顯示新數據:
調用hiddenInput.val()
不會執行任何操作,而調用hiddenInput.change()
或hiddenInput.trigger('change.select2')
關閉下拉列表並刪除所有輸入的文本。
如何使數據更新而不需要用戶做任何事情,也無需重置窗口小部件的狀態(例如,不關閉和清除搜索字段)?
我找到了一個臨時解決方案,可以使小部件反映數據已更改。 基本上,它只是模擬在搜索字段中鍵入內容的行為。
var searchField = hiddenInput.data("select2").search;
if (searchField.is(":focus")) {
var searchTerm = searchField.val();
hiddenInput.select2("search", "");
hiddenInput.select2("search", searchTerm);
}
但是,這似乎不是一個非常“干凈”的解決方案,因此我將繼續接受此作為最終解決方案,直到出現更合適的解決方案為止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.