1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > ComboBox自定义多选下拉加模糊搜索的功能(去除多余字段)

ComboBox自定义多选下拉加模糊搜索的功能(去除多余字段)

时间:2023-01-05 23:32:41

相关推荐

ComboBox自定义多选下拉加模糊搜索的功能(去除多余字段)

这里我用的是onHidePanel:removeOther,因为onSelect事件对赋值操作有影响。上面这个是我很久之前做项目的时候记录的。写的可能不是很清楚。下面的例子很明白,看下面一个就好了

function removeOther(){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]);}}}

鉴于有小伙伴问我这个模糊搜索去掉多余字段的问题,由于好久没用过这个框架了,我就去官网重新看了一下。自己重新写了个简单的例子。大家参考一下,这里我是写在onClick事件里去的,写的位置自己随意,满足自己的需求即可

$('#test').combobox({onClick:function (record) {var area = $(this).combobox('getData'); //我的数据都是本地写死的,所以这里用的是获取本地数据的方法var localValue = [];for (var j =0;j<area.length;j++){localValue.push(area[j].value)//获取本地的所有value值}var values = $(this).combobox('getValues');//获取当前选中的值if(values.length && values.length>0){for(var i =0; i<values.length;i++){if(!localValue.includes(values[i])){//如果当前选中元素不在本地数据里面,就去这个值去掉$(this).combobox('unselect',values[i])}}}}})

再说一下自己的思路:先获取到你下拉框的所有数据然后在获取当前下拉框选中的值。吧选中的值跟所有的值进行比对,如果所有的值里面不包括选中的某一个值,就把这个值从选中的里面去掉。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。