老生常谈combobox和combotree模糊查询
First
/** *combobox和combotree模糊查询 *combotree结果显示两级父节点(手动设置数量) *键盘上下键选择叶子节点 *键盘回车键设置文本的值 */ (function(){ //combobox可编辑,自定义模糊查询 $.fn.combobox.defaults.editable=true; $.fn.combobox.defaults.filter=function(q,row){ varopts=$(this).combobox('options'); returnrow[opts.textField].indexOf(q)>=0; }; //combotree可编辑,自定义模糊查询 $.fn.combotree.defaults.editable=true; //选中行索引 varleafBlockIndex=0; //当前选中行索引 varnowLeafBlockIndex=-1; //combotree组件 varcomboTree=null; //叶子节点DOMArray varleafBlocks=null;; //将所有的结果叶子节点放入DOMArray中 functiongetDOMArray(data){ comboTree=$(data).combotree('tree'); leafBlocks=newArray(); varleafs=comboTree.tree('getChildren'); for(vari=0;i=leafBlocks.length){ leafBlockIndex=0; } comboTree.tree('select',leafBlocks[leafBlockIndex]); //easyui1.3.4版开始可用 //comboTree.tree('scrollTo',leafBlocks[leafBlockIndex]); nowLeafBlockIndex=leafBlockIndex; }, left:function(e){ console.log('left'); //varval=$(this).combo('getText'); //$(this).combo('setText',val+''); }, right:function(e){ console.log('right'); //varval=$(this).combo('getText'); //console.log(val); //$(this).combo('setText',val+''); }, enter:function(e){ varleaf=$(leafBlocks[nowLeafBlockIndex]); varvalue=leaf.children('span').last().text(); $(this).combo('setText',value); $(this).combo('hidePanel') }, query:function(q){ vart=$(this).combotree('tree'); varnodes=t.tree('getChildren'); for(vari=0;i =0){ $(node.target).show(); varparent=t.tree('getParent',node.target); if(parent){ $(parent.target).show(); if(parent){ parent=t.tree('getParent',parent.target); $(parent.target).show(); } } }else{ $(node.target).hide(); } } varopts=$(this).combotree('options'); if(!opts.hasSetEvents){ opts.hasSetEvents=true; varonShowPanel=opts.onShowPanel; opts.onShowPanel=function(){ varnodes=t.tree('getChildren'); for(vari=0;i Second
(function($){ //combotree可编辑,自定义模糊查询 $.fn.combotree.defaults.editable=true; $.extend($.fn.combotree.defaults.keyHandler,{ query:function(q){ vart=$(this).combotree('tree'); t.tree("search",q); } }); $.extend($.fn.tree.methods,{/** *扩展easyuitree的搜索方法 *@paramtreeeasyuitree的根DOM节点(UL节点)的jQuery对象*@paramsearchText检索的文本 *@paramthis-contexteasyuitree的tree对象*/ search:function(jqTree,searchText){ //easyuitree的tree对象。可以通过tree.methodName(jqTree)方式调用easyuitree的方法 vartree=this; //获取所有的树节点 varnodeList=getAllNodes(jqTree,tree); //如果没有搜索条件,则展示所有树节点 searchText=$.trim(searchText); if(searchText==""){ for(vari=0;i0){ varnode=null; for(vari=0;i 0){ for(vari=0;i (containerH-30)){ varscrollHeight=container.scrollTop()+nodeOffsetHeight-containerH+30; container.scrollTop(scrollHeight); } } } }); /** *展示搜索匹配的节点*/ functionshowMatchedNode(jqTree,tree,node){ //展示所有父节点 $(node.target).show(); $(".tree-title",node.target).addClass("tree-node-targeted"); varpNode=node; while((pNode=tree.getParent(jqTree,pNode.target))){ $(pNode.target).show(); } //展开到该节点 tree.expandTo(jqTree,node.target); //如果是非叶子节点,需折叠该节点的所有子节点 if(!tree.isLeaf(jqTree,node.target)){ tree.collapse(jqTree,node.target); } } /** *判断searchText是否与targetText匹配 *@paramsearchText检索的文本*@paramtargetText目标文本 *@returntrue-检索的文本与目标文本匹配;否则为false. */ functionisMatch(searchText,targetText){ return$.trim(targetText)!=""&&targetText.indexOf(searchText)!=-1; } /** *获取easyuitree的所有node节点*/ functiongetAllNodes(jqTree,tree){ varallNodeList=jqTree.data("allNodeList"); if(!allNodeList){ varroots=tree.getRoots(jqTree); allNodeList=getChildNodeList(jqTree,tree,roots); jqTree.data("allNodeList",allNodeList); } returnallNodeList; } /** *定义获取easyuitree的子节点的递归算法*/ functiongetChildNodeList(jqTree,tree,nodes){ varchildNodeList=[]; if(nodes&&nodes.length>0){ varnode=null; for(vari=0;i 以上这篇老生常谈combobox和combotree模糊查询就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。