一,属性介绍

* 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. 设置surfaceView的背景为透明

    1. [代码][Java]代码    下面三句话加上就好了. surfaceView.setZOrderOnTop(true); surfaceView.setEGLConfigChooser(, , ...

  2. 第 20 章 CSS3 前缀和 rem

    学习要点: 1.CSS3 前缀 2.长度单位 rem 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 在发展中实行标准化的一些问题,重点探讨 CSS3 中新属性前缀问题和新的单位 rem. 一 ...

  3. 框架SpringMVC笔记系列 一 基础

    主题:SpringMVC 学习资料参考网址: 1.http://www.icoolxue.com 2.http://aokunsang.iteye.com/blog/1279322 1.SpringM ...

  4. uums

    http://blog.csdn.net/hudon/article/details/1506042 http://www.cnblogs.com/biakia/p/4779655.html http ...

  5. Scalaz(0) - 写在前面

    面向对象编程范畴(OOP)从80年代C++到90年代java的兴起已经经历了几十年的高潮,是不是已经发展到了尽头,该是函数式编程(FP)开始兴旺发达的时候了吧.这样说似乎心眼儿有点坏,可能会得罪当今大 ...

  6. Java继承中成员方法的overload(重载/过载)

    如果Java基础类有一个方法名被"过载"使用多次,在衍生类里对那个方法名的重新定义就不会隐藏任何基础类的版本.所以无论方法在这一级还是在一个基础类中定义,过载都会生效. publi ...

  7. GJM:书籍相关整理 [原创]

    多人在线教程(中文)MultiplayerTutorial.pdf           链接: http://pan.baidu.com/s/1boDGGGZ 密码:9l2g 版权声明:本文原创发表于 ...

  8. [TypeScript] Dictionary范例

    [TypeScript] Dictionary范例 Playground http://tinyurl.com/o7czcxo Samples class Dictionary { [index: s ...

  9. jQuery+fullPage.js演示10种全屏滚动

    基本演示 背景演示 循环演示 回调函数演示 绑定菜单演示 项目导航演示 自动滚动 slide自动滚动 响应式 下载地址 实例代码 <!DOCTYPE html> <html lang ...

  10. Web 开发人员必备的12款 Chrome 扩展程序

    之前已经分享过一些帮助 Web 开发人员和设计师的 Chrome 扩展,这次我们继续展示一组很有用的 Chrome 应用程序.这些免费的 Chrome 应用程序可以简化您的工作流程,为了加快您的工作流 ...