typeahead.js 使用记录

github地址:https://github.com/twitter/typeahead.js

在aceAdmin界面模板中,有typeahead这一控件,版本号为0.10.2 , 这个版本对 minLength:0这个参数无效,所以我就到github中找到新版本0.11.1 替换,在此记录使用过程中的一些注意事项

基本代码

 var gameNameList = [‘abc‘, ‘abd‘, ‘cde‘, ‘xyz‘];
            var gameNameMatcher = function(strs) {
                return function findMatches(q, cb) {
                    var matches, substrRegex;

                    // an array that will be populated with substring matches
                    matches = [];

                    // regex used to determine if a string contains the substring `q`
                    substrRegex = new RegExp(q, ‘i‘);

                    // iterate through the pool of strings and for any string that
                    // contains the substring `q`, add it to the `matches` array
                    $.each(strs, function(i, str) {
                        if (substrRegex.test(str)) {
                            matches.push({value:str});
                        }
                    });

                    cb(matches);
                };
            };
            $(‘#Name‘).typeahead({
                hint: true,
                highlight: true,
                minLength: 0
            }, {
                name: ‘gameNameList‘,
                displayKey: ‘value‘,
                source: gameNameMatcher(gameNameList)
            });

注意: 在github的example上,没有displayKey 这行,  matches.push里面的代码是 (str) 而不是({Value:str}) ,这样的结果就是在匹配的列表中只显示 undefined 。

minLength这个参数为0时,点击输入框则自动出列表,比较适合选项不多的情况。

配合aceAdmin使用时,会出现列表没有边框等显示效果异常,原因是版本升级后样式表不对,我采用修改ace.css来解决:

1 将 tt-dropdown-menu改为 tt-menu

2 增加一段css

.tt-suggestion:hover {
  cursor: pointer;
  color: #fff;
  background-color: #0097cf;
}

最后,还要提一下版本问题,这个控件经过多次升级,最后从bootstrap里面独立出来了,所以在3.0以上版本中看不到这一控件。在网上大量的资料是基于早期版本的,与现有版本差异较大。

时间: 2024-11-29 01:00:12

typeahead.js 使用记录的相关文章

Bootstrap typeahead使用问题记录及解决方案

简单介绍 Bootstrap typeahead插件是用来完成输入框的自动完成.模糊搜索和建议提示的功能,支持ajax数据加载,类似于jquery的流行插件Autocomplete. typeahead的使用方式有两种:通过数据属性字段的方式和通过Javascript加载的方式. 1. 通过属性字段的方式 在输入文本框input组件里添加data-provide="typeahead"这个属性字段表示使用typeahead扩展插件: <input type="text&

【微收藏】来自Twitter的自动文字补齐jQuery插件 - Typeahead.js

没图没逼格 事发有因 该插件可以结合本地数据进行一些操作.推荐关注一下H5的几种数据存储的方式(localstorage与sessionstorage.IndexedDB.离线缓存manifest文件).事关移动端优化,找时间再仔细详细总结一下,静候下一个时段. 主要特性 支持数据本地保存,客户端加载,优化加载速度 支持多语言,并且支持阿拉伯文 支持Hogan.js模板引擎整合 支持多数据集拼装 支持本地和远程的数据集 项目地址 http://twitter.github.io/typeahea

在ASP.NET MVC中使用typeahead.js支持预先输入,即智能提示

使用typeahead.js可以实现预先输入,即智能提示,本篇在ASP.NET MVC下实现.实现效果如下: 首先是有关城市的模型. public class City { public int Id { get; set; } public string Name { get; set; } public string PinYin { get; set; } } 在HomeController中响应前端请求返回有关City的json数据. public ActionResult GetCit

typeahead 表单,为用户提供提示或数据。自动补全typeahead.js

typeahead.js功能强但不支持响应式 官网:https://twitter.github.io/typeahead.js/ 例子:https://twitter.github.io/typeahead.js/examples/ 引用: <script src="https://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.js"></script> <link hre

使用typeahead js 做quick search

js references : [Handlebar] http://handlebarsjs.com/ [typeahead] https://twitter.github.io/typeahead.js/ demo html : <script src="jquery-1.11.1.min.js"></script> <script src="typeahead.bundle.js"></script> <s

小白学习node.js的记录

本人对于node.js一无所知,纯纯的小白一枚,想学习的初衷是了解node.js是什么,能用它干点什么,说白就是好奇心使然吧.接下来记录自己的学习过程. 注:若有错误欢迎指出,互相学习.segmentfault        stackoverflow 谁适合阅读本教程? 如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择. Node.js 是运行在服务端的 JavaScript,如果你熟悉Javascri

vue.js 学习记录(二)

原文连接:http://www.cnblogs.com/keepfool/p/5625583.html 组件 #注册组件 Vue.component('my-component', { // 选项 }) 组件在注册之后,便可以在父实例的模块中以自定义元素 <my-component></my-component> 的形式使用.要确保在初始化根实例 之前 注册了组件: <!DOCTYPE html> <html> <body> <div id

vue.js 学习记录(一)

原文地址:http://www.cnblogs.com/rik28/p/6024425.html 1.这段代码在画面上输出"Hello World!". <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!--这是我们的View--> <

php 二维数组传递给 js 问题解决记录

需求: php从数据库中读取到二维数组.传递到js中 实现步骤: php:json_encode  →   json  →  js:eval 即在php中使用json_encode()将php的二维数组转化成json格式.传递到js中,使用eval()解析得到js的二维数组. 代码: php: <?php header("Content-Type: text/html; charset=utf8") ; $con=mysqli_connect("url",&q