我想要做的是通过Ajax获取一个json对象,并使用一种值填充Bootstrap Typeahead.
这是我的代码:
nameTypeHead: function () { var _self = this,searchInput = $('#nameTypeHead'),arr = []; function getArray() { $.ajax({ url: '/Home/AutoComplete',type: 'post',dataType: 'json',data: { searchText: searchInput.val() },success: function (data) { $.each(data,function () { arr.push(this.Name); }); return arr; } }); } searchInput.typeahead({ source: getArray() }); }
我收到arr为null的错误
我也尝试用.parseJSON()但没有成功:
$.each($.parseJSON(data),function () { arr.push(this.Name); });
我可以做什么来显示我的Json对象的值在类型中的值?
如果在Ajax成功的话我把alert(JSON.stringify(data));它正确地提醒我的Json对象.
解决方法
我从头开始:
$('#typeahead').typeahead({ source: function (query,process) { return $.getJSON( 'path/to/lookup',{ query: query },function (data) { return process(data); }); } });
数据是一个简单的JSON数组,如:
[ "John","Jane","Alfredo","Giovanni","Superman" ]
如果您的数据数组具有不同的结构,只需将其重新排列,然后再传递给process()方法即可.
编辑 – 基于你的json数据:
[ {'id':'0','name':'John'},{'id':'1','name':'Jane'},{'id':'2','name':'Alfredo'},... }
getJSON回调成为:
function (data) { var newData = []; $.each(data,function(){ newData.push(this.name); }); return process(newData); });
原文地址:https://www.jb51.cc/jquery/180390.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。