select2動態搜尋 問題解決

2021-08-19 20:03:52 字數 1901 閱讀 3735

最近專案中頁面模板用到select2,需要動態搜尋資料,顯示下拉選,參考select2官網,大概寫出來,**如下

$("#select2-button-addons-single-input-group-sm").select2(,  

ajax: ;

},processresults: function(data) 這種形式的時候,可以使用類似此方法建立新的陣列物件

var arr = data

for(item in arr))

}return ;

},cache: false

},escapemarkup: function(markup) ,// let our custom formatter work

minimuminputlength: 1,

templateresult: formattask,

templateselection: formattaskselection

});

其中兩個引數:

templateresult: formattask,

templateselection: formattaskselection

對應的兩個方法要重寫

function formattask(username) 

function formattaskselection(username)

這樣寫遇到問題:

在選擇選項時總是選中乙個選項,但是顯示的是錯誤的選項,比如:我當前選中「北京」,下拉選第乙個是「上海」,我選擇上海,還是顯示「北京」,搞了兩天,最終找到問題所在,問題**是如下幾行:

var itemlist = ;//當資料物件不是這種形式的時候,可以使用類似此方法建立新的陣列物件

var arr = data

for(item in arr))

}

因為select2判斷選中必須要求資料格式為這樣,通過id來判斷選中項,如上面**,第一次搜尋,選中「北京」,遍歷建立新格式的時候,「北京」對應id為0,那麼id為0的選項為選中項,也就是「北京」。當我不重新整理頁面重新搜尋「上海」的時候,又進行遍歷建立新格式,這時候「上海」對應id也為0,這時候select2就認為id為0的選項是選中項,這時候雖然select顯示北京,但是實際選中項為上海。

解決:

設定全域性i,每次遍歷設定id為i,再進行i++操作,這樣id就不會重複,不會出現上面問題;

var i = 0;

$("#select2-button-addons-single-input-group-sm").select2(,

ajax: ;

},processresults: function(data) 這種形式的時候,可以使用類似此方法建立新的陣列物件

var arr = data

for(item in arr))

i++;

}return ;

},cache: false

},escapemarkup: function(markup) ,// let our custom formatter work

minimuminputlength: 1,

templateresult: formattask,

templateselection: formattaskselection

});

補充:

經測試,上面建立新格式,其中的id可以隨意,不一定為數字,只要不是重複的就好,而且id是有其他用處的,如果提交表單,id值就是提交的select中option的value值,大家視自己情況修改id。

Select2衝突問題

1 jquery.js 2 select2.js select2.css 3 my.js 自定義的js 1 select2.js引用失敗,通過檢視網頁源 檢視是否存在select2.js 2 引用的其他js中存在全域性變數define以及require,與select2中的全域性變數define,r...

select2的相關問題

在彈出框中無法使用select2的問題 selectid select2 但如果這個select在彈出框中,這樣使用往往是無效的,這時候需要這樣寫 fn.modal.constructor.prototype.enforcefocus function 參考select2設定預設選中 設定value...

解決select2下拉欄錯位問題

在有些情況下,比如頁面中多個選擇欄的情況下,使用select2外掛程式會導致錯位的問題 就像下面這樣 本應出現在藍框位置的,卻跑到了紅框的位置。因為是相對位置問題,所以可以鎖定在css。經過對css的排查,發現select2會為下拉框新增乙個行內樣式position absolute 下拉框設定ab...