easyui combox 輸入多選時,去掉輸入值
阿新 • • 發佈:2018-11-26
說明:easyui在使用combox,支援多選屬性:multiple:true,並支援在輸入框中搜索,但是輸入的搜尋值不會自動去掉
較笨的解決方式,利用onHidePanel函式,處理如下:
$("#Box").combobox({onHidePanel: function() { var valueField = $(this).combobox("options").valueField; var val = $(this).combobox("getValues"); //當前combobox的值 var allData = $(this).combobox("getData"); //獲取combobox所有資料 var unSelect=[allData.length] var currentValue=val.toString().split(",");//把選中的值及輸入值分割為陣列 for(var j=0;j<currentValue.length;j++){//迴圈選中的值和com中所有值進行比對,不存在的利用unselect清除 var result = true; //為true說明輸入的值在下拉框資料中不存在 for (var i = 0; i < allData.length; i++) { if (currentValue[j] == allData[i][valueField]) { result = false; } } if(result){//不存在 $(this).combobox('unselect', currentValue[j]); } } }});
注意:這種情況在combox資料量少的情況是可行的,如果資料量較大,不建議使用,還是推薦改變原始碼的方式