最近做一个项目,用到了JQuery的自动补全函数,但默认的是只显示一列数据,所以就略加修改,拿出来献丑了。

下面这个是默认调用本地数据:

$("#tags").autocomplete(["c++","java", "php", "coldfusion","javascript"],   //这个参数是一个自动补全的一个数据数组,当你输入一个字符,它就会把有的显示出来,这个静态赋值//不是很好(个人觉得)。

{                  //下面是一些显示效果参数
         width: 320,
         max: 4,
         highlight: false,
         multiple: true,
          multipleSeparator: "",
         scroll: true,
        scrollHeight: 300
        });

下面这个是调用后台数据:

$("#...").autocomplete({
       source: function(resquest,response){
           $.ajax({
               url:'.........',//请求地址
               type: "post",
               dataType:"json",//返回类型
               success: function(msg){
                   response(msg);//返回需要提示的内容
               }
           });
       }
     });   
以上都是一般使用。

下面是本文的重点:

function extendAutocomplete(){//这是一个扩展函数,继承自ui.autocomplete
    $.widget('custom.multipeCln',$.ui.autocomplete,{
        _renderItem : function( ul, item ) {//这里重写autocomplete的_renderItem方法
            if(ul.html() == ""){
                var div = $('<div class="ui-widget-header" style="width:100%"></div>');
                var table = $('<table  style="width:100%" border=0></table>');
                var thead = $('<thead  style="width:100%"></thead>');
                var tr = $('<tr style="width:100%"></tr>');
                $.each(this.options.columns, function(index, item) {//这里遍历需要显示列的标题
                    tr.append('<td style="padding:0 4px;float:left;width:' + item.width + 'px;">' + item.name + '</td>');
                });
                thead.append(tr);
                table.append(thead);
                div.append(table);
                ul.append(div);
            }
            var t = '';
             t =  '<span  style="width:100%">';
             t += '<table  style="width:100%" border=0>';
            t += '<tr style="width:100%">';
            
           $.each(this.options.columns, function(index, column) {//遍历显示的值
                t += '<td style="padding:0 4px;float:left;width:' + column.width + 'px;">' + item[column.name.toLowerCase()] + '</td>';
           });
           t += "</tr></table></span>";
            
            return $( "<li>" ).append( $( "<a  class='mcacAnchor'>" ).html( t ) ).appendTo( ul );
        }
    });
}

下面是使用这个扩展

$(function(){
    var data=[{'model':'1221','manufacturer':'HTML'},{'model':'1221','manufacturer':'HTML'},{'model':'3221','manufacturer':'HTML212'},{'model':'789221','manufacturer':'HTML343'}];
    extendAutocomplete();
    $('#auto').multipeCln({
        showHeader : true,
        columns : [{name : 'Model', width : 200},{name : 'Manufacturer', width : 200}],//设置显示列的标题
        select: function(event, ui) {//这里操作点击提示框中数据后,显示到文本框中的样式
    
            this.value = ui.item.model + (ui.item.manufacturer ? '/' + ui.item.manufacturer : '');
            return false;
        },
        source:function(request,response)
            {    
                response(data);
             }
    });
    });

显示效果图:

希望对大家有帮助,第一次写文章,不足之处请大家多多提点。

JQuery.autocomplete扩展功能:实现多列自动提示相关推荐

  1. jQuery如何实现表单的自动提示

    看到没有,这里用户名那个地方的自动提示 用到了下面这个jQuery插件 转载于:https://www.cnblogs.com/MyFlora/archive/2012/05/02/2478866.h ...

  2. jquery autocomplete实现solr查询字段自动填充并执行查询

    2019独角兽企业重金招聘Python工程师标准>>> 页面引入三个JS: <script type="text/javascript" src=" ...

  3. input的属性AutoComplete——关闭浏览器文本框自动提示

    1. 有时候我们并不需要AutoComplete,例如需要用户自己再次输入而非自动完成.只要将所在表单元素的autocomplete属性设置为off即可. <form> 请双击文本框 &l ...

  4. jquery.autocomplete 使用解析

    页面引用 <script type="text/javascript" src="${base}/autocom/jquery-1.8.2.min.js" ...

  5. ajax+json自动提示Demo

    下载地址:http://download.csdn.net/download/honghu549599aaa/4479865 Autocomplete: /*** @author :LYL*@date ...

  6. 仿百度,谷歌输入框自动提示功能

    大家使用百度谷歌的时候都会有输入自动提示的功能,心血来潮自己用Ajax模拟了一个,和大家分享分享. 下面让我们先看下效果: 输入自动提示 键盘上下移动选取 鼠标选取同样支持   支持中文匹配   JS ...

  7. php 智能输入提示插件,PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能_php实例...

    我们在很多项目中使用了搜索功能来帮助用户更快更准确的找到想要的信息.本文将介绍如何实现用户输入自动提示的功能,就像谷歌百度搜索引擎一样,当用户输入关键字时,输入框下方会有提示,将与关键字相关的信息展现 ...

  8. jquery.autocomplete自动补全功能

    1.jquery.autocomplete参考地址  http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/  http:// ...

  9. 优秀的 jQuery 文本输入框自动完成 自动提示插件

    文框输入框的自动完成和自动提示功能可以帮助用户快速的完成操作,是非常好的产品使用体验.这里向大家推荐一款优秀的 jQuery 文本输入框自动完成 & 自动提示插件,帮助你在网站中轻松添加输入框 ...

最新文章

  1. tomcat架构分析 (connector NIO 实现)【转】
  2. 孙钟秀--《操作系统教程》注释(陈怀临)-- 读书笔记
  3. Oracle触发器简单使用记录
  4. 用nodejs读取github上某仓库的某条issue明细
  5. 【Java】Junit、反射和注解的笔记
  6. Oracle使用ODBC连接配置
  7. linux下救援模式
  8. jvm内存分析和cpu耗时分析
  9. 管理感悟:下结论的套路
  10. 通过编写纯代码与JDBC实现对mysql的数据实现增删改查案例,jdbc连接数据库六步完整步骤详解,适合编程新手,通俗易懂
  11. c语言例题22:日期计算
  12. C语言代码实现最小二乘法线性拟合直线
  13. 电路分析第三章 电容与电感
  14. 《TCP/IP详解》中文版下载地址
  15. 西电工作笔记(部分)【10000字】【原创】
  16. HDU 1512 Monkey King(左偏树+并查集)
  17. TP-LINK无线路由器屏蔽恶意网站方法
  18. 用公式提取多个Excel文件的数据
  19. 今晚直播 |不诉离殇,图像分割打卡营正式毕业啦!
  20. 精确度、召回率、真阳性、假阳性

热门文章

  1. 前端学习(1969)vue之电商管理系统电商系统之渲染动态参数和静态参数的表格
  2. 前端学习(1132):正则表达式学习目标
  3. 前端学习(757):预解析
  4. shiro学习(14):springMVC结合shiro完成认证
  5. 第一百二十一期:当新闻报道用上AR 技术,能为读者带来什么?
  6. mysql受影响的行 0_为什么更新/删除成功时受影响的行返回0?
  7. 微信小程序:生命周期
  8. Linux下MySQL 安装配置
  9. MySQL多项模糊查询
  10. 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005...