easyui combobox模糊搜索

2018-06-24 02:15:19来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

combobox实现模糊搜索功能

<input class="easyui-combobox" id="hybq_PADD" name="hybq_PADD"
                        data-options="valueField:'id',textField:'text',required:true,  
                        panelHeight:'auto',    panelMaxHeight:200,panelMinHeight:100"
                            validType="name[0,60]" style="width: 300px; height: 24px;"
                            type="text" />
    <script>
    var comboboxData = [{id:'1',text: 'abc'},{id:'2',text: 'bca'},{id:'3',text: 'cba'},{id:'4',text: 'cas'},{id:'5',text: 'asd'}];
    var comboboxValue = [];
    $('#hybq_PADD').combobox({  
        //prompt:'输入首关键字自动检索',
        data: comboboxData,
        //url:'${path }/portal/designer/tree',  
        editable: true,  
        multiple: true,
        hasDownArrow: false,
        formatter: function (row) {
            var opts = $(this).combobox('options');
            console.log(row)
            console.log("发:    "+row[opts.textField])
            return '<input type="checkbox" class="combobox-checkbox">' + row[opts.textField]
        },
        onShowPanel: function () {
            var opts = $(this).combobox('options');
            var target = this;
            var values = $(target).combobox('getValues');
            $.map(values, function (value) {
                var el = opts.finder.getEl(target, value);
                el.find('input.combobox-checkbox')._propAttr('checked', true);
            })
        },
        onLoadSuccess: function () {
            var opts = $(this).combobox('options');
            var target = this;
            var values = $(target).combobox('getValues');
            $.map(values, function (value) {
                var el = opts.finder.getEl(target, value);
                el.find('input.combobox-checkbox')._propAttr('checked', true);
            })
            
            //绑定失焦事件
            $('#hybq_PADD').next('.combo').find('input').blur(function (){
                var val = $(this).val()
                   if(val != '') {
                     val = val.trim();
                     var arr = val.split(',');
                     var newArr = [];
                     for(var j = 0; j < arr.length; j++) {
                           for(var i = 0; i < comboboxData.length; i++) {
                               if(comboboxData[i][opts.textField] == arr[j]) {
                                   newArr.push(arr[j]);
                               }
                         }
                     }
                     $('#hybq_PADD').combobox("setValues",$('#hybq_PADD').combobox("getValues"))
                   }
                  
            });
        },
        onSelect: function (row) {
            var opts = $(this).combobox('options');
            var el = opts.finder.getEl(this, row[opts.valueField]);
            el.find('input.combobox-checkbox')._propAttr('checked', true);
        },
        onUnselect: function (row) {
            var opts = $(this).combobox('options');
            var el = opts.finder.getEl(this, row[opts.valueField]);
            el.find('input.combobox-checkbox')._propAttr('checked', false);
        },
        filter: function(text, row) {
            var opts = $(this).combobox('options');
            var el = opts.finder.getEl(this, row[opts.valueField]);
            if(text != '' && row[opts.textField].indexOf(text) == 0) {
                el.find('input.combobox-checkbox')._propAttr('checked', false);
            }
            for ( var r in row) {
                if(row[opts.textField].indexOf(text) == 0 && row[opts.textField] == text) {
                    el.find('input.combobox-checkbox')._propAttr('checked', true);
                    break;
                }
            }
            return row[opts.textField].indexOf(text) == 0;
        },
        onChange: function(newValue, oldValue) {
            comboboxValue = newValue;
            var opts = $(this).combobox('options');
            var data = $(this).combobox('options').data;
               for(var j = 0; j< data.length; j++) {
                   var el = opts.finder.getEl(this, data[j][opts.valueField]);
                el.find('input.combobox-checkbox')._propAttr('checked', false);
               }
               for(var i = 0; i < newValue.length; i++) {
                   var el = opts.finder.getEl(this, newValue[i]);
                el.find('input.combobox-checkbox')._propAttr('checked', true);
               }
        }
    });
                            
    </script>

                                                 

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:jQuery快速入门

下一篇:9、Node.js Stream(流)