jquery mutilselect 插件添加中英文自动补全

jquery mutilselect默认只能根据设置的option来进行自动提示

$.each(availableTags, function(key, value) {
         $(‘#channels‘)
             .append($("<option></option>")
             .attr("value",value)
             .text(value)); //默认按text中的value来自动提示
    });
    

阅读下面的需求:

有这么几个选项:

北京

天津

湖北

输入中文的时候控件可以根据输入的中文自动提示,如输入"北" 提示北京,但是如果想输入"bei"提示"北京".控件无法完成这个功能,这个时候需要修改源代码,在jquery.multiselect.filter.js文件中,有一个专门来做提示的函数updateCache,找到这个函数的定义

 updateCache: function() {
      // each list item
      this.rows = this.instance.menu.find(".ui-multiselect-checkboxes li:not(.ui-multiselect-optgroup-label)");

      // cache
      this.cache = this.element.children().map(function() {
        var elem = $(this);

        // account for optgroups
        if(this.tagName.toLowerCase() === "optgroup") {
          elem = elem.children();
        }

        return elem.map(function() {
          return this.innerHTML.toLowerCase();
        }).get();
      }).get();
    //下面这一段代码是自定义,添加拼音提示功能
      if(this.cache.length>0){
          for(var i=0;i< this.cache.length;i++){
              var tv = this.cache[i];
              var letter=tv+cityMap[tv];
              if(letter!=undefined){
                  this.cache[i]=tv+letter;
              }
          }
      }
    },

上面的代码就是新增后的代码。新增的代码也就几行。如下



//下面这一段代码是自定义,添加拼音提示功能
      if(this.cache.length>0){
          for(var i=0;i< this.cache.length;i++){
              var tv = this.cache[i];
              var letter=tv+cityMap[tv];
              if(letter!=undefined){
                  this.cache[i]=tv+letter;
              }
          }
      }

 

解释这段代码:

  this.rows代表的是每一行可选的项目

  this.cache是一个数组,默认初始化所有option中text到这个数组,在用户输入字符之后,会遍历这个数组,通过正则表达式来匹配,匹配上的元素会自动在前端展示出来。

完整源代码下载:

链接: http://pan.baidu.com/s/1c0AdgI0 密码: 6lck

jquery mutilselect 插件添加中英文自动补全,布布扣,bubuko.com

时间: 2024-09-26 20:10:11

jquery mutilselect 插件添加中英文自动补全的相关文章

Vundle管理vim插件实现python自动补全

vim使用方便,如果安装了插件就更完美了. 下面介绍vundle管理vim插件,配置python环境. 示例图 下载安装Vundle,修改~/.vimrc 配置文件,写python程序能够实现自动补全,提示等. " Source a global configuration file if available "if filereadable("/etc/vim/vimrc.local") " source /etc/vim/vimrc.local &qu

使用Redis实现中英文自动补全功能详解

1.Redis自动补全功能介绍: ? Redis可以帮我们实现很多种功能,今天这里着重介绍的是Redis的自动补全功能的实现.我们使用有序集合,并score都为0,这样就按元素值的字典序排序.然后我们可以根据排序号的字符,进行添加前缀和后缀的方式,找到我们想要的区间内容.下面介绍一个简单的Zset的排序内容和思路,以便后续的理解: 名称为redis_concat的Zset集合元素如下: 编号 数值 分值 1 a 0 2 ab 0 3 abcd 0 4 abef 0 5 hjk 0 6 dbfgl

vim 添加php自动补全 并格式化代码

自动补全,修改/etc/vimrc的配置 vim /etc/vimrc 添加: filetype plugin on autocmd FileType php set omnifunc=phpcomplete#CompletePHP 格式化代码:一下是按键 gg shift + v shifg + g = 参考:

Python添加tab自动补全及命令历史功能。

1. 新建Python环境变量配置文件: vim ~/.pystartup # Add auto-completion and a stored history file of commands to your Python # interactive interpreter. Requires Python 2.0+, readline. Autocomplete is # bound to the Esc key by default (you can change it - see rea

为python添加tab自动补全功能

fedora ~ $ python Python 2.7.8 (default, Nov 10 2014, 08:19:18) [GCC 4.9.2 20141101 (Red Hat 4.9.2-1)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys        

Python2.7.12开发环境构建(自动补全)

一.安装readline-devel包 Python的编译安装依赖于这个包 yum -y install readline-devel 二.安装Python2.7.12 Python官方网站(到此处下载):https://www.python.org/ # tar xf Python-2.7.12.tgz # cd Python-2.7.12 # ./configure --prefix=/usr/local/python27 # make && make install # ln -sv

四十七 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索的自动补全功能

elasticsearch(搜索引擎)提供了自动补全接口 官方说明:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html 1.创建搜索自动补全字段suggest 自动补全需要用到一个字段名称为suggest类型为Completion类型的一个字段 所以我们需要用将前面的elasticsearch-dsl操作elasticsearch(搜索引擎)增加sugg

Python基础 (tab自动补全)

Python 自动补全 1.添加python自动补全的脚本 vim ~/.pythonstartup #添加如下 #!/usr/bin/python import sys import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete') # history file histfile = os.path.join(os.envir

js 自动补全

js 代码 //---------------------------------------------------自动补全begin-------------------------------- var maxcount = 0;// 表示他最大的值 var thisCount =0;// 初始化他框的位置 var flagThis = 0; var flag = 0; //标示是否选择自动补全 //自动补全方法 function zdbq(obj){ var id = obj.id; d