easyUI实现类似搜索框关键词自动提示功能示例代码


Posted in Javascript onDecember 27, 2016

在一个DataGrid里面,搜索行所在位置

实现的效果如下:

easyUI实现类似搜索框关键词自动提示功能示例代码

在搜索框中输入部分列名关键字,即可匹配到行的位置。

EasyUI的SearchBox组件只提供了静态搜索框,我们可以使用ComboBox来实现动态的自动关键匹配效果,并且不需要加载远程数据。当前页面的DataGrid的数据我们可以直接在本地获取之。

代码如下:

setp1、创建combobox

<div style="text-align: left;background-color: #E0ECFF;padding-left: 10px;padding-top: 5px;"> 
  <div id="searchField" style="width:250px"></div> 
</div>

step2、实现本地数据加载

$("#searchField").combobox({ 
  loader: function(param,success,error){ 
    //获取输入的值 
    var q = param.q || ""; 
    //此处q的length代表输入多少个字符后开始查询 
    if(q.length <= 0) return false; 
    var rows = $('#fieldList').datagrid('getRows'); 
    var items = $.map(rows, function (item, index) { 
      //匹配条件,忽略大小写 
      if(item.fieldName && (item.fieldName.toLowerCase().indexOf(q.toLowerCase()) != -1)){ 
        return { 
          "fieldName": item.fieldName 
        }; 
      } 
    }); 
    success(items); 
  }, 
  onBeforeLoad:function () { 
    //设置placeholder 
    $("input[class='textbox-text validatebox-text textbox-prompt']").attr("placeholder","输入标注字段,定位所在行"); 
  }, 
  mode: 'remote', 
  textField:'fieldName', 
  valueField:'fieldName', 
  onSelect : function(record){ 
    var $filedList = $('#fieldList'); 
    var rows = $filedList.datagrid('getRows'); 
    if(rows && rows.length > 0){ 
      for(var r = 0 ; r < rows.length ; r++){ 
        if(rows[r].fieldName == record.fieldName){ 
          $filedList.datagrid('selectRow',r); 
          break; 
        } 
      } 
    } 
  } 
});

load是一个适配器,它将本地数据转换成combobox所需的数据格式:

var rows = $('#fieldList').datagrid('getRows'); 
var items = $.map(rows, function (item, index) { 
  //匹配条件,忽略大小写 
  if(item.fieldName && (item.fieldName.toLowerCase().indexOf(q.toLowerCase()) != -1)){ 
    return { 
      "fieldName": item.fieldName 
    }; 
  } 
});

首先我们通过datagrid的getRows方法获取当前数据表的所有行,然后通过map转换。

success(items);

到此就完成了数据的转换

step3、实现行的选中

onSelect : function(record){ 
    var $filedList = $('#fieldList'); 
    var rows = $filedList.datagrid('getRows'); 
    if(rows && rows.length > 0){ 
      for(var r = 0 ; r < rows.length ; r++){ 
        if(rows[r].fieldName == record.fieldName){ 
          $filedList.datagrid('selectRow',r); 
          break; 
        } 
      } 
    } 
  }

在onSelect事件中,匹配所在行调用selectRow即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript中的anchor()方法使用详解
Jun 08 Javascript
js实现简单折叠、展开菜单的方法
Aug 28 Javascript
jQuery实现立体式数字滚动条增加效果
Dec 21 Javascript
详解JavaScript的BUG和错误
May 07 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
Mar 13 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
May 14 Javascript
深入分析jQuery.one() 函数
Jun 03 jQuery
vue 在methods中调用mounted的实现操作
Aug 07 Javascript
10分钟学会js处理json的常用方法
Dec 06 Javascript
js简单粗暴的发布订阅示例代码
Jan 23 Javascript
vue判断按钮是否可以点击
Apr 09 Vue.js
jQuery获取选中单选按钮radio的值
Dec 27 #Javascript
JS前向后瞻正则表达式定义与用法示例
Dec 27 #Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 #Javascript
TypeScript学习之强制类型的转换
Dec 27 #Javascript
如何利用JQuery实现从底部回到顶部的功能
Dec 27 #Javascript
详解js的六大数据类型
Dec 27 #Javascript
javascript ASCII和Hex互转的实现方法
Dec 27 #Javascript
You might like
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
2010/02/09 PHP
php实现的验证码文件类实例
2015/06/18 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
PHP错误处理函数
2016/04/03 PHP
JavaScript 仿关机效果的图片层
2008/12/26 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
JavaScript实现存储HTML字符串示例
2014/04/21 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
Vue.js结合bootstrap实现分页控件
2017/03/10 Javascript
vuex 中插件的编写案例解析
2019/06/10 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
Python实现的Excel文件读写类
2015/07/30 Python
Python3学习笔记之列表方法示例详解
2017/10/06 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
python 绘制国旗的示例
2020/09/27 Python
python 下划线的不同用法
2020/10/24 Python
python从PDF中提取数据的示例
2020/10/30 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
公务员培训自我鉴定
2013/09/19 职场文书
大学团支书的自我评价分享
2013/12/14 职场文书
安全资金保障制度
2014/01/23 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
人事经理岗位职责范本
2014/08/04 职场文书
教师节领导致辞
2015/07/29 职场文书
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers