使用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 相关文章推荐
Input 特殊事件onpopertychange和oninput
Jun 17 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
js获取 type=radio 值的方法
May 09 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
Oct 21 Javascript
jQuery图片拖动组件Dropzone用法示例
Jan 17 Javascript
JavaScript原型继承_动力节点Java学院整理
Jun 30 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
Sep 05 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
Nov 09 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
利用PHP实现递归删除链表元素的方法示例
Oct 23 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
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
让html元素随浏览器的大小自适应垂直居中的实现方法
2016/10/12 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
2018/01/09 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
node.js中module模块的功能理解与用法实例分析
2020/02/14 Javascript
uniapp实现横向滚动选择日期
2020/10/21 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
Python中使用Beautiful Soup库的超详细教程
2015/04/30 Python
Python读取本地文件并解析网页元素的方法
2018/05/21 Python
python人民币小写转大写辅助工具
2018/06/20 Python
Python爬虫使用浏览器cookies:browsercookie过程解析
2019/10/22 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
瑜伽灵感珠宝:Satya Jewelry
2018/01/06 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
高中运动会入场词
2014/02/14 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
党员干部形式主义个人整改措施
2014/09/17 职场文书
党委干部批评与自我批评发言稿
2014/09/28 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
公务员岗前培训心得体会
2016/01/08 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
nginx服务器的下载安装与使用详解
2021/08/02 Servers
MySQL RC事务隔离的实现
2022/03/31 MySQL