一,属性介绍

* minChars (Number)
  在触发autoComplete前用户至少需要输入的字符数.Default: 1,如果设为0,在输入框内双击或者删除输入框内内容时显示列表
* width (Number)
  指定下拉框的宽度. Default: input元素的宽度
* max (Number)
  autoComplete下拉显示项目的个数.Default: 10
* delay (Number)
  击键后激活autoComplete的延迟时间(单位毫秒).Default: 远程为400 本地10
* autoFill (Boolean)
  要不要在用户选择时自动将用户当前鼠标所在的值填入到input框. Default: false
* mustMatch (Booolean)
  如果设置为true,autoComplete只会允许匹配的结果出现在输入框,所有当用户输入的是非法字符时将会得不到下拉框.Default: false
* matchContains (Boolean)
  决定比较时是否要在字符串内部查看匹配,如ba是否与foo bar中的ba匹配.使用缓存时比较重要.不要和autofill混用.Default: false
* selectFirst (Boolean)
  如果设置成true,在用户键入tab或return键时autoComplete下拉列表的第一个值将被自动选择,尽管它没被手工选中(用键盘或鼠标).当然如果用户选中某个项目,那么就用用户选中的值. Default: true
* cacheLength (Number)
  缓存的长度.即对从数据库中取到的结果集要缓存多少条记录.设成1为不缓存.Default: 10
* matchSubset (Boolean)
  autoComplete可不可以使用对服务器查询的缓存,如果缓存对foo的查询结果,那么如果用户输入foo就不需要再进行检索了,直接使用缓存.通常是打开这个选项以减轻服务器的负担以提高性能.只会在缓存长度大于1时有效.Default: true
* matchCase (Boolean)
  比较是否开启大小写敏感开关.使用缓存时比较重要.如果你理解上一个选项,这个也就不难理解,就好比foot要不要到FOO的缓存中去找.Default: false
* multiple (Boolean)
  是否允许输入多个值即多次使用autoComplete以输入多个值. Default: false
* multipleSeparator (String)
  如果是多选时,用来分开各个选择的字符. Default: ","
* scroll (Boolean)
  当结果集大于默认高度时是否使用卷轴显示 Default: true
* scrollHeight (Number)
  自动完成提示的卷轴高度用像素大小表示 Default: 180 
* formatItem (Function)
  为每个要显示的项目使用高级标签.即对结果中的每一行都会调用这个函数,返回值将用LI元素 包含显示在下拉列表中. Autocompleter会提供三个参数(row, i, max): 返回的结果数组, 当前处理的行数(即第几个项目,是从1开始的自然数),

  当前结果数组元素的个数即项目的个数. Default: none, 表示不指定自定义的处理函数,这样下拉列表中的每一行只包含一个值.
* formatResult (Function)
  和formatItem类似,但可以将将要输入到input文本框内的值进行格式化.同样有三个参数,和formatItem一样.Default: none,表示要么是只有数据,要么是使用formatItem提供的值.
* formatMatch (Function)
  对每一行数据使用此函数格式化需要查询的数据格式. 返回值是给内部搜索算法使用的. 参数值row
* extraParams (Object)
  为后台(一般是服务端的脚本)提供更多的参数.和通常的作法一样是使用一个键值对对象.如果 传过去的值是{ bar:4 },将会被autocompleter解析成my_autocomplete_backend.php?q=foo&bar=4 (假设当前用户输入了foo). Default: {}
* result (handler)
  此事件会在用户选中某一项后触发,参数为:
    event: 事件对象. event.type为result.
    data: 选中的数据行.
    formatted:formatResult函数返回的值

二、支持中文

  网上很多介绍修改源码以支持firefox的中文检索,其实没有可以直接写一下代码解决,因为firefox对keyup的支持是没问题的。

  $("ele").on("keyup",function(){

        $(this).keydown();
});

三、eg:

function bindAutoComplete(){
  $("input[name^='xxx']").autocomplete(data, {
    mustMatch:true, //文本框里输入的内容,必须是data参数里的数据,如果不匹配,文本框就被清空
    selectFirst:true, //在用户键入tab或return键时autoComplete下拉列表的第一个值将被自动选
    scroll:true, //使用卷轴显示
    minChars: 0, //在自动完成激活之前填入的最小字符,设置为0,在我们双击文本框不输入字符的时候,就会把数据显示出来
    cacheLength:1, //缓存的长度.即对从数据库中取到的结果集要缓存多少条记录.设成1为不缓存.Default: 10
    max:80, //下拉框中显示的数据条数
    width: 400, //指定下拉框的宽度
    scrollHeight: 250, //自动完成提示的卷轴高度用像素大小表示 Default: 180
    matchContains: true, //表示包含匹配,就是data参数里的数据,是否只要包含文本框里的数据就显示 ,比如我们输入了“g”,能显示"Google"和"Sogou",如果将matchContains设为fasle,则“Sogou”就不会显示。
    autoFill: false, //要不要在用户选择时自动将用户当前鼠标所在的值填入到input框. Default: false
    

    formatItem: function(row, i, max) { //以格式化列表中的 条目,其代表的是显示的格式

      return i + "/" + max + ": \"" + row.name + "\" " + " ["+row.charger+"] ";
    },
    formatMatch: function(row, i, max) { //配合formatItem使用,表示匹配的内容,表示用户输入的内容在哪些数据项里面搜索
      return row.name+" "+row.charger;
    },
    formatResult: function(row) { //是定义最终返回的数据
      var firstChar=row.name.charAt(0);
      //如果首字符非英文,删除首字符后返回,用于中文查询的实现
      if(!(firstChar>='a'&&firstChar<='z'||firstChar>='A'&&firstChar<='Z')&&!(firstChar>='0'&&firstChar<='9'))
        return row.name.substr(1,row.name.length);
      else
        return row.name;
    }
  });
  //选中的结果交给result中的function cascadeInvoiceChangeProjectInfo()进一步处理
  $("input[name^='xxx']").result(cascadeInvoiceChangeProjectInfo);
}

jQuery自动完成组建Autocomplete的更多相关文章

  1. jQuery UI 实例 - 自动完成(Autocomplete)

    http://www.runoob.com/jqueryui/example-autocomplete.html 自定义数据并显示 您可以使用自定义数据格式,并通过简单地重载默认的聚焦和选择行为来显示 ...

  2. JQuery 插件之Ajax Autocomplete(ajax自动完成)搜索引擎自动显示下拉框

    平时用百度,谷歌搜索的时候 会有一个下 拉列表进行提示 这是一个非常好的功能 本文要介绍的这个JQuery 插件 名叫Ajax Autocomplete 顾名思义 ajax 也就是用ajax的方式获取 ...

  3. JQuery 插件之Ajax Autocomplete(ajax自动完成)

    平时用百度,谷歌搜索的时候 会有一个下 拉列表进行提示 这是一个非常好的功能 本文要介绍的这个JQuery 插件 名叫Ajax Autocomplete 顾名思义 ajax 也就是用ajax的方式获取 ...

  4. jQuery 自动完成文本框

    jQuery自动完成插件开源软件 http://www.oschina.net/project/tag/329/jquery-autocomplete jQuery TextExt http://te ...

  5. jquery自动填充输入框

    1,这是一个比较简单的页面,你可以复制下来就可以使用.<!doctype html><html lang="en"><head> <met ...

  6. jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件

    jQuery框架学习第一天:开始认识jQueryjQuery框架学习第二天:jQuery中万能的选择器jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQuer ...

  7. jQuery自动加载更多程序

    1.1.1 摘要 现在,我们经常使用的微博.微信或其他应用都有异步加载功能,简而言之,就是我们在刷微博或微信时,移动到界面的顶端或低端后程序通过异步的方式进行加载数据,这种方式加快了数据的加载速度,由 ...

  8. Eclipse 支持jQuery 自动提示

    1.下载jQuery文件 http://download.csdn.net/detail/emoven/6294377 2.设置spket Window -> Preferences -> ...

  9. 让你的MyEclipse具有jquery自动提示

    想让你的MyEclipse支持Jquery的自动提示更简单一些,照下图完成即可:      照上面图示已经完成了Jquery自动提示的配置,此时spket已经有两种AJAX库的自动提示,通过右边的De ...

随机推荐

  1. "Hello World!" for the NetBeans IDE

    "Hello World!" for the NetBeans IDE It's time to write your first application! These detai ...

  2. 如何优雅地使用 Windows 10 ?

    身为一个伪电脑Geek,就算不懂电脑,也要把那些更不懂电脑的人给唬住. 1.入门级别: 当然就是让别人从视觉上感觉你的电脑不一般啦 第一步:桌面要干净,干净到什么程度呢,要像这样 当别人第一眼看到你的 ...

  3. EC笔记,第一部分:3.尽量使用const

    03.尽量使用const 1.const概述 2.返回const 为何要返回一个const? 因为如果不返回const,程序员可能写出fun(a,b)=c;这样的代码,也许是因为打字错误可能写出类似i ...

  4. 钉钉服务器端SDK PHP版

    项目地址: https://github.com/web3d/DingtalkSDK.git 钉钉官方有些简单的demo,但封装得有些粗糙. 开发的过程中,做了一个有点小意思的工具:json数据转换为 ...

  5. 写PHP代码你搞过单元测试吗

    其实一开始我内心是想做单元测试(unit testing)的,但时间久了,也就不想了. 要想通过PHP编程成为技术领域的专家,其实功夫在PHP之外.数据库至少得看几本书,xml至少得看一本书,单元测试 ...

  6. 微信公众平台关于fakeid和openid的解析

    今天在开发项目的时候遇到了个问题: 搞不清楚微信官方接口的fromusername(openid)和公众平台内每个粉丝所拥有的fakeid,于是在测试号中开始了对以上两项的研究,结果如下:   1.对 ...

  7. SQL数据库: 错误2812 未能找到存储过程 sp_password

    SET QUOTED_IDENTIFIER ON  GO  SET ANSI_NULLS OFF  GO  create procedure sp_password      @old sysname ...

  8. socket.io,理解socket.io

    原文:http://www.cnblogs.com/xiezhengcai/p/3957314.html 要理解socket.io ,不得不谈谈websocket 在html5之前,因为http协议是 ...

  9. ImFire即时通讯系统构建(需求)

    ImFire需求 一期需求(近期) 1.新用户(账号)注册. 2.用户登入登出,支持pc端,移动端同时登录. 3.获取好友列表,包含好友的各种信息,状态. 4.根据用户id或用户名申请添加好友. 5. ...

  10. SQL Server代码如何快速格式化

    在SQL Server中我们经常需要编写各种SQL脚本,例如存储过程和函数等,由于在编写过程中,经常会进行调整,有些关键字我们用的大写,有的我们用的小写,有的后面结束用:分割有的又没有.对于有强迫症的 ...