[转]Ext combobox 动态模糊匹配

Ext中的combobox有属性typeAhead:true 可以实现模糊匹配,但是是从开始匹配的,如果需要自定的的匹配,则需要监听beforequery方法,实现自己的匹配查询方法:

代码如下:


var  gfxmComb   =   new  Ext.form.ComboBox({
        id : 'gfxmComb',
        store : gfxmStore,
        typeAhead : 
true ,
        mode : 'local',
        editable : 
true ,
        displayField :'xmMc',
        valueField :'xmBm',
        triggerAction : 'all',
        selectOnFocus : 
true ,
        listeners : {
            'beforequery':
function (e){
                 
                
var  combo  =  e.combo;  
                
if ( ! e.forceAll){  
                    
var  input  =  e.query;  
                    
//  检索的正则
                     var  regExp  =   new  RegExp( " .* "   +  input  +   " .* " );
                    
//  执行检索
                    combo.store.filterBy( function (record,id){  
                        
//  得到每个record的项目名称值
                         var  text  =  record.get(combo.displayField);  
                        
return  regExp.test(text); 
                    });
                    combo.expand();  
                    
return   false ;
                }
            }
        }
    });

原文出自:http://weibaojun.iteye.com/blog/1098731

你可能感兴趣的:([转]Ext combobox 动态模糊匹配)