1. 程式人生 > >easyui combox 輸入多選時,去掉輸入值

easyui combox 輸入多選時,去掉輸入值

說明: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資料量少的情況是可行的,如果資料量較大,不建議使用,還是推薦改變原始碼的方式