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数据量少的情况是可行的,如果数据量较大,不建议使用,还是推荐改变源代码的方式

猜你喜欢

转载自blog.csdn.net/shenchengxinsunwei/article/details/84374019