使用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 相关文章推荐
JavaScript中的new的使用方法与注意事项
May 16 Javascript
jquery库文件略庞大用纯js替换jquery的方法
Aug 12 Javascript
JavaScript中的6种运算符总结
Oct 16 Javascript
Node.js实现的简易网页抓取功能示例
Dec 05 Javascript
jQuery实现鼠标划过添加和删除class的方法
Jun 26 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
使用 Node.js 对文本内容分词和关键词抽取
May 27 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
Dec 09 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 23 Javascript
带你使用webpack快速构建web项目的方法
Nov 12 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
Feb 11 Vue.js
使用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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
PHP使用递归按层级查找数据的方法
2019/11/10 PHP
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
javascript插件开发的一些感想和心得
2016/02/28 Javascript
盘点javascript 正则表达式中 中括号的【坑】
2016/03/16 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
基于require.js的使用(实例讲解)
2017/09/07 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
2020/04/27 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
毕业实习个人鉴定范文
2013/12/10 职场文书
自荐书模板
2013/12/19 职场文书
十八大报告观后感
2014/01/28 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
超市收银员岗位职责
2015/04/07 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
教师节随笔
2015/08/15 职场文书
用Python编写简单的gRPC服务的详细过程
2021/07/04 Python