使用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 相关文章推荐
利用Ext Js生成动态树实例代码
Sep 08 Javascript
JavaScript 基础知识 被自己遗忘的
Oct 15 Javascript
打印json对象的内容及JSON.stringify函数应用
Mar 29 Javascript
用于deeplink的js方法(判断手机是否安装app)
Apr 02 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
Vue中自定义全局组件的实现方法
Dec 08 Javascript
JS中移除非数字最多保留一位小数
May 09 Javascript
JavaScript中的连续赋值问题实例分析
Jul 12 Javascript
VueJS 取得 URL 参数值的方法
Jul 19 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
Sep 21 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 clearstatcache()函数详解
2010/03/02 PHP
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
js获取json元素数量的方法
2015/01/27 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
老生常谈javascript中逻辑运算符&amp;&amp;和||的返回值问题
2017/04/13 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
[04:03]DOTA2肉山黑名单梦之声 风暴之灵中文配音鉴赏
2013/07/03 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
[01:01:52]完美世界DOTA2联赛PWL S2 GXR vs Magma 第二场 11.25
2020/11/26 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
理解Python垃圾回收机制
2016/02/12 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Python Flask-web表单使用详解
2017/11/18 Python
Python3自动签到 定时任务 判断节假日的实例
2018/11/13 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
万年牢教学反思
2014/02/15 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
社区禁毒工作方案
2014/06/02 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
员工年度工作总结2015
2015/05/18 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS