如何用JS实现一个类似百度搜索框的输入框呢,再填充完失去焦点时,自动填充配置项,最终效果如下图:

实现很简单,但是易用性会上升一大截,需要用到的有jquery-ui的autocomplete,jquery的keyup事件,以及ajax与服务端的交互。

废话少说直接上代码:

引用,需要jquery-ui和jquery:

<link rel="stylesheet" href="/static/plugins/jqueryui1/jquery-ui-autocomplete.css">
<link rel="stylesheet" href="/static/plugins/jqueryui1/jquery-ui-1.7.1.css">
<script src="/static/plugins/jQuery/jQuery-2.1.4.min.js"></script>
<script src="/static/plugins/jQueryUI/jquery-ui.min.js"></script>

html输入框的设计,一个文本输入框和一个隐藏输入框:

<span class="bd_DW_checkbox_left_10">路径:</span>
<span><input type="text" id="path" class="bd_DW_input_len_350"><input type="hidden" id="hidden_path" class="bd_DW_input_len_350"/>
</span>

js代码中实现:

1、autocomplete自动填充

2、keyup事件

3、ajax与后端交互

简单来说:

1、文本输入框的每次键入,触发一个keyup事件;

2、事件的处理方式是向后端请求模糊推荐的项items,这里的返回数据结果是:

{"errno": 0;"data": ["path1", "path2" ... "pathN"]
}

3、autocomplete自动填充hidden输入框,其余的事情jquery-ui会为你处理好;

4、当你点选完成,或者是输入完成后,path框失去焦点(blur事件)的时候,会从后端请求数据,自动填充好各个输入框add_field。

具体代码如下:

function time_path_select() {//定义新数组var path_data = [];var _path_data = [];$("#time_path").autocomplete({source: _path_data});$("#time_path").keyup(function(event){var path=$("#time_path").val();if(path.length>0){var data_dict = send_get("/paths?path=" + path)var data = data_dict['data'];var len = data.length;for(var i=0;i<len-1;i++){path_data[i]=data[i];};$("#hidden_path").val(path_data);var _data=$("#hidden_path").val().split(",");for(var j=0;j<_data.length;j++){_path_data[j]=_data[j];}}});
}
function send_get(url) {    var json_data = "";    $.ajax({        type:"get",        url:url,        datatype:"json",        async: false,        error: function() {            pop_window("请求数据失败");        },        success:function(data) {            //json_data = $.parseJSON(data);            json_data = data;        },    });    return json_data;}
function pop_window(message) {    layer.alert(message, {        skin: 'layui-layer-lan',        closeBtn: 0    });}
function add_field() {    $('#time_path').blur(function(){        var path = $('#time_path').val();        var json_data = send_get('/time_config_item?path=' + path);        if (json_data != {}) {            $("#time_buffer_time").val(json_data['buffer_time']);            $("#time_task_name").val(json_data['item_name']);            $("#time_email").val(json_data['owner_email']);            $("#time_phone").val(json_data['owner_phone']);            $("#time_owner").val(json_data['owner']);            $("#bd_DW_monitor_status_select").val(json_data['status']);            var cron_config = json_data['cron_config'];            var list = cron_config.split(':');            if (list[0] == '*') {                $('#bd_DW_monitor_type_select').val('hour');            }            else {                $('#bd_DW_monitor_type_select').val('day');            }            $("#time_hour").val(list[0]);            $("#time_minute").val(list[1]);        }    });}
 

转载于:https://www.cnblogs.com/kangoroo/p/6349567.html

JavaScript实现模糊推荐的input框(类似百度搜索框)相关推荐

  1. 模糊查询(类似百度搜索框)

    很常见的搜索框,很常用,总结一下,怕自己忘了,使用的是原生的js. 这是原生写的,代码很简单,重要是思路.主要就是用了一个indexOf(),很简单.越简单的东西越难想到,很多人都会想到用正则去做,这 ...

  2. vue实现搜索框搜索新增_基于Vue el-autocomplete 实现类似百度搜索框功能_含真_前端开发者...

    效果图如下所示: 首先上代码 让数据触手可及 class="inline-input search-input" v-model="searchContent" ...

  3. 类似百度搜索框实时搜索的实现

    1.html代码 <input type="text" name="ProjectNumber" id="ProjectNumber" ...

  4. jQuery实现百度搜索框

    最近项目需求,写了一个类似百度搜索框的功能. 把代码整理了一遍,然后分享出来给大家看看,如果有不对的地方请多指教. 实现效果 使用的语言:html,css,JavaScript,jQuery 代码部分 ...

  5. 站长工具|百度搜索框提示功能

    百度向站长开放免费"百度搜索框"代码和"百度搜索框提示"代码.只需进行简单的设置, 即可将" 百度搜索框( 带提示功能)"功能快速加入到您的 ...

  6. html搜索框下拉怎么做,一步一步教你实现仿百度搜索框下拉效果(上)

    最终效果(chrome 下): 搜索框下拉 demo 今天就来简单讲解下如何做这样一个类似百度搜索框的下拉效果. 1.html 以及 css 部分 首先你得要有个输入框,这里我用了  控件,其次当用户 ...

  7. 百度搜索框代码(有下拉提示的)

    根据不同类型的网站需求,我们一共提供三种引入方式供您选择: ·简单方式--方便的将"百度搜索框(带提示功能)"直接加入到您的网页中. 将以下代码加入到您的网页中,即可获得带有&qu ...

  8. JavaScript实现百度搜索框提示

    案例---百度搜索框提示 文章目录 一.代码 二.代码解释 效果图(百度): 输入aa后底下就会出现相对应和aa有关系的一些提示. 一.代码 <!DOCTYPE html> <htm ...

  9. 有历史搜索记录的搜索框(百度搜索案例)

    带有历史搜索词条的搜索框 记录一下带有历史搜索词条的搜索框,具体效果类似百度搜索: 点击搜索框 展示历史搜索词条列表: 点击搜索框以外的区域 隐藏历史搜索词条列表: 点击删除除去对应词条. 效果图: ...

  10. [百度搜索框Bootstrap模仿]

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>百度搜 ...

最新文章

  1. CS131专题-6:图像特征(Blob检测、LoG算子、Harris-Laplacian)
  2. #研发解决方案#分布式并行计算调度和管理系统Summoner
  3. 转换成12进制 oracle,oracle 进制其间转换
  4. [译文]ASCII art with C#
  5. 【Kaggle-MNIST之路】CNN+改进过的损失函数+多次的epoch(四)
  6. poj-青蛙的约会(扩展欧几里得)nyoj-小柯的约会
  7. mate 树莓派4b安装ubuntu_树莓派4B安装安装Ubuntu Mate 16.04
  8. Ubuntu开启telnet服务
  9. Laravel 中的环境与配置
  10. Spring Data JPA 从入门到精通~如何配置多数据源
  11. datetimepicker获取年月日_bootstrap-datetimepicker 获取时间
  12. java 生成复杂的word_Java 动态生成复杂 Word
  13. blockquote 和 q 标签 css样式
  14. html在线取色,JS实现的RGB网页颜色在线取色器完整实例
  15. 腾讯微博开放平台的工作效率真差
  16. Spring事务(2)使用Spring事务完成转账小例子
  17. 笔记本计算机的连接无线网络连接,笔记本电脑连接wifi的方法步骤
  18. SQL语句(增删改查)
  19. vue中使用echarts中国地图
  20. 神器,阿里巴巴Java代码检查插件

热门文章

  1. Tomcat5.5中配置虚拟路径
  2. 很好听,可没机会跟你分享
  3. JavaScript对滚动条的操作
  4. SqlSessionFactory和SqlSessionTemplate
  5. C# winform+ springboot + mybatis 分页查询
  6. Spring MVC请求-响应流
  7. 利用if...else if....else循环语句编程
  8. jQuery基础资料(二)
  9. JavaWeb之Servlet编程
  10. cp命令显示进度条_教程 | Linux常用命令大全