使用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 表格插件整理
Apr 27 Javascript
基于jquery的用鼠标画出可移动的div
Sep 06 Javascript
学习js在线html(富文本,所见即所得)编辑器
Dec 18 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
Aug 21 Javascript
高性能JavaScript模板引擎实现原理详解
Feb 05 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
May 25 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
JS实现动态给标签控件添加事件的方法示例
May 13 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
Aug 16 Javascript
vue生命周期实例小结
Aug 15 Javascript
使用Vue-cli3.0创建的项目 如何发布npm包
Oct 10 Javascript
Vue 按照创建时间和当前时间显示操作(刚刚,几小时前,几天前)
Sep 10 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实现与python进行socket通信的方法示例
2017/08/30 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
JavaScript作用域链使用介绍
2013/08/29 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
JQuery实现简单的服务器轮询效果实例
2016/03/31 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
10款最好的Python开发编辑器
2019/07/03 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
2020/03/24 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
免费获得微软MCSD证书赶快行动吧!
2012/11/13 HTML / CSS
Bobbi Brown芭比波朗美国官网:化妆师专业彩妆保养品品牌
2016/08/18 全球购物
德国网上宠物店:Zoobio
2018/05/23 全球购物
新西兰领先的内衣店:Bendon Lingerie新西兰
2018/07/11 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
小学生自我评价范文
2014/01/25 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
英语教师求职信范文
2015/03/20 职场文书
入党群众意见范文
2015/06/02 职场文书
新员工入职感想
2015/08/07 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
详解Redis集群搭建的三种方式
2021/05/31 Redis
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript
python神经网络 使用Keras构建RNN训练
2022/05/04 Python