当前位置: 首页 > 编程笔记 >

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

冯通
2023-03-14
本文向大家介绍easyUI实现类似搜索框关键词自动提示功能示例代码,包括了easyUI实现类似搜索框关键词自动提示功能示例代码的使用技巧和注意事项,需要的朋友参考一下

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

实现的效果如下:

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

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即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Android EditText实现关键词批量搜索示例,包括了Android EditText实现关键词批量搜索示例的使用技巧和注意事项,需要的朋友参考一下 今天在项目中用到了用到了一种特殊的EditText,当用户在EditText中输入内容,点击搜索按钮的时候,输入的内容能够高亮,然后添加到输入的容器中。删除的时候,能够将容器中的关键词逐一删除。附上代码: SearchEditT

  • 本文向大家介绍基于javascript实现的搜索时自动提示功能,包括了基于javascript实现的搜索时自动提示功能的使用技巧和注意事项,需要的朋友参考一下 当在数据量不是很大,而且没有后端对应的功能接口的时候,一些简单的搜索功能基本上是前端去实现的,正好最近用到,写了一个,贴出来和大家分享: 效果图: 功能描述: 按下键盘后及时搜索条目中的汉字,汉字对应的拼音和号码; 实现思路: 先将条目中的

  • 本文向大家介绍使用Ajax模仿百度搜索框的自动提示功能实例,包括了使用Ajax模仿百度搜索框的自动提示功能实例的使用技巧和注意事项,需要的朋友参考一下 啊啊,熬夜了。今天学习了ajax给我的感觉就是,”哇塞“ajax好酷炫哦,(额。。。后端狗,接触到了大前端的魅力了),这么晚了还是直奔主题把。Let's go! 百度搜索提示框,我想大家都很熟悉了把,是什么样子我也就不再赘述。直接看代码 来我们写一

  • 本文向大家介绍easyui combobox开启搜索自动完成功能的实例代码,包括了easyui combobox开启搜索自动完成功能的实例代码的使用技巧和注意事项,需要的朋友参考一下 combo.json 下面是代码示例 以上这篇easyui combobox开启搜索自动完成功能的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍easyui-combobox 实现简单的自动补全功能示例,包括了easyui-combobox 实现简单的自动补全功能示例的使用技巧和注意事项,需要的朋友参考一下 前台:  Html页面 JS 以上这篇easyui-combobox 实现简单的自动补全功能示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍JavaScript实现的搜索及高亮显示功能示例,包括了JavaScript实现的搜索及高亮显示功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript实现的搜索及高亮显示功能。分享给大家供大家参考,具体如下: 情景: 用来筛选列表中的数据, 由于单条数据很简短, 没有用php+mysql去实现筛选功能, 只用javascript进行筛选, 匹配的高亮,