使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法


Posted in Javascript onJuly 07, 2016

根据网上查找到的 typeahead使用方法,到最后一步时就出错,数据能从数据库读取出来,但在输入框显示提示时,全都显为:underfined。捉摸了半天都发现不了问题出在哪儿。后来在http://blog.64cm.com/post/2014/08/13/%E4%BD%BF%E7%94%A8bootstrap-typeahead%E6%8F%92%E4%BB%B6 上不经意发现这么一句话:“在当前版本的typeahead中,已经不再支持在source属性中直接调用ajax方法获取数据源了。”提醒了我,因为我根据网上的方法,是直接在source中调用ajax方法。

再回头现在的ace demo,虽然没有调用ajax的示例,但也有注释说明如何用,只不过用的是英文(题外话:做技术的懂英语真的很重要。),经过一翻调试,终于能正确显示了。贴出代码如下:

js代码

<script type="text/javascript">
jQuery(function($) {
//typeahead.js
//example taken from plugin's page at: https://twitter.github.io/typeahead.js/examples/
var substringMatcher = function() {//substringMatcher()方法
return function findMatches(query, process) {//query 是配备的关键字,processj是返回的值
var matches, substringRegex;
var params = {"token": getStorage("token"), "flag":0,"name":query};
var parameter_str="";
for(var key in params){ 
parameter_str+="&"+key+"="+params[key];
} 
var fullurl=getOption("gykj_host")+"institution/list?"+getOption("gykj_callbackparam")+"="+getOption("gykj_callbackfunc")+parameter_str;
$("#submenu_info").html(fullurl);
$.ajax({
url:fullurl,
type:'get',
dataType:"jsonp",
jsonp:getOption("gykj_callbackparam"),
jsonpCallback:getOption("gykj_callbackfunc"),
async:false,
error:function(){
alert("列表:"+getOption("connectionErrorMessage"));
},
success:function(data){
//$("#submenu_info").html(fullurl);
if(data.code==0){
var arr,substringRegex;
arr=[];
substrRegex = new RegExp(query);//这必须有,要不还是显示为underfined
for(var item in data.data){
var str= data.data[item].name;
if (substrRegex.test(str)) {
// the typeahead jQuery plugin expects suggestions to a
// JavaScript object, refer to typeahead docs for more info
arr.push({ value:str});
}
}
process(arr);
}
}
})
}
}
$('input.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1
}, {
name: 'states',
displayKey: 'value',
source: substringMatcher()//当前版本source属性中不能直接调用ajax方法获取数据源,通过substringMatcher()方法
});
});
</script>

html

<!-- inline scripts related to this page -->
<script src="../assets/js/ace-elements.js"></script>
<script src="../assets/js/typeahead.jquery.js"></script>
<input type="text" id="name" placeholder="机构名称" class="col-xs-10 col-sm-5 typeahead scrollable" value="" autocomplete="off" />

以上所述是小编给大家介绍的使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jQuery Ajax 全解析
Feb 08 Javascript
jQuery中ajax和post处理json的不同示例对比
Nov 02 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
Jan 05 Javascript
JQuery 传送中文乱码问题的简单解决办法
May 24 Javascript
老生常谈原生JS执行环境与作用域
Nov 22 Javascript
js实现扫雷小程序的示例代码
Sep 27 Javascript
微信小程序实现文件、图片上传功能
Aug 18 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
Dec 16 Javascript
小程序点餐界面添加购物车左右摆动动画
Sep 23 Javascript
带你使用webpack快速构建web项目的方法
Nov 12 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 #Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
Apr 16 #Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
Jul 07 #Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 #Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
Jul 06 #Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
Jul 06 #Javascript
jQuery+ajax实现实用的点赞插件代码
Jul 06 #Javascript
You might like
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
JS 常用校验函数
2009/03/26 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
2015/11/17 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
vue数据初始化initState的实例详解
2019/04/11 Javascript
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
使用Python绘制图表大全总结
2017/02/11 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
如何理解python对象
2020/06/21 Python
Python+pyftpdlib实现局域网文件互传
2020/08/24 Python
Django返回HTML文件的实现方法
2020/09/17 Python
CSS3+js实现简单的时钟特效
2015/03/18 HTML / CSS
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
小学敬老月活动方案
2014/02/11 职场文书
入党积极分子评语
2014/05/04 职场文书
团日活动总结模板
2014/06/25 职场文书
庆六一活动总结
2014/08/29 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
运动会开幕词
2015/01/28 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS