簡體   English   中英

當select2內容處於焦點和空閑狀態時更新

[英]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 }
});

如果我專注於小部件的搜索字段,則只有在以下情況下才會顯示新數據:

  1. 我點擊離開,然后再次聚焦
  2. 我開始在字段中輸入

調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM