zoukankan      html  css  js  c++  java
  • easyui combobox模糊搜索

    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=" 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>

                                                     

  • 相关阅读:
    c# 设计模式(一) 工厂模式
    微信开发
    一款非常好用的 Windows 服务开发框架,开源项目Topshelf
    基础语法
    C++环境设置
    c++简介
    使用查询分析器和SQLCMD分别登录远程的SQL2005的1434端口
    ps-如何去水印
    html/css/js-横向滚动条的实现
    java中如何给控件设置颜色
  • 原文地址:https://www.cnblogs.com/bunuo/p/9169060.html
Copyright © 2011-2022 走看看