javascript-select2:使用ajax获取json时,“文本未定义”
作者:互联网
将json结果恢复为select2时出现问题.我的json没有返回具有“文本”字段的结果,因此需要格式化结果,以便select2接受“名称”.
如果json中的文本字段设置为“文本”,则此代码有效,但是在这种情况下,我无法更改json结果的格式(我控制范围之外的代码).
$("#e1").select2({
formatNoMatches: function(term) {return term +" does not match any items." },
ajax: { // instead of writing the function to execute the request we use Select2's convenient helper
url: "localhost:1111/Items.json",
dataType: 'jsonp',
cache: true,
quietMillis: 200,
data: function (term, page) {
return {
q: term, // search term
p: page,
s: 15
};
},
results: function (data, page) { // parse the results into the format expected by Select2.
var numPages = Math.ceil(data.total / 15);
return {results: data.Data, numPages: numPages};
}
}
});
我查看了文档,发现一些可以放入结果中的语句,例如
text: 'Name',
但我仍然收到“文本未定义”.
谢谢你的帮助.
解决方法:
请注意,select2始终为{id,text}对,因此您需要同时指定两个
results: function (data, page) {
var newData = [];
_.each(data, function (item) {
newData.push({
id: item.Id //id part present in data
, text: item.DisplayString //string to be displayed
});
});
return { results: newData };
}
},
标签:javascript,jquery,json,ajax,jquery-select2 来源: https://codeday.me/bug/20191012/1898060.html