使用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 相关文章推荐
使两个iframe的高度与内容自适应,且相等
Nov 20 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
Sep 15 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
Oct 15 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
Nov 23 Javascript
实现隔行换色效果的两种方式【实用】
Nov 27 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
Feb 05 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
解决低版本的浏览器不支持es6的import问题
Mar 09 Javascript
基于vue.js中关于下拉框的值默认及绑定问题
Aug 22 Javascript
webpack+express实现文件精确缓存的示例代码
Jun 11 Javascript
Vue提供的三种调试方式你知道吗
Jan 18 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
用php将任何格式视频转为flv的代码
2009/09/03 PHP
PHP中其实也可以用方法链
2011/11/10 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
PHP使用new StdClass()创建空对象的方法分析
2017/06/06 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
2016/08/05 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
Node.js的文件权限及读写flag详解
2016/10/11 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
Django URL传递参数的方法总结
2016/08/28 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
PYTHON基础-时间日期处理小结
2018/05/05 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
2019/04/11 Python
在Python中过滤Windows文件名中的非法字符方法
2019/06/10 Python
Python中面向对象你应该知道的一下知识
2019/07/10 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
python中dict()的高级用法实现
2019/11/13 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
Python基础进阶之海量表情包多线程爬虫功能的实现
2020/12/17 Python
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
工地安全检查制度
2014/02/04 职场文书
小学生操行评语
2014/04/22 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
自主招生专家推荐信
2015/03/26 职场文书