我正在使用Bootstrap typeahead和ajax函数,并且想知道什么是正确的Json结果格式,以返回Id和描述。 我需要Id将typeahead选定元素与mvc3模型绑定。Bootstrap typeahead ajax结果格式 - 示例
这是代码:
[Html]
<input id="myTypeahead" class='ajax-typeahead' type="text" data-link="myUrl" data-provide="typeahead" />
[Javascript]
$('#myTypeahead').typeahead({
source: function (query, process) {
return $.ajax({
url: $('#myTypeahead').data('link'),
type: 'post',
data: { query: query },
dataType: 'json',
success: function (jsonResult) {
return typeof jsonResult == 'undefined' ? false : process(jsonResult);
}
});
}
});
This works properly when I return a simple list of strings, for example:
{item1, item2, item3}
But I want to return a list with Id, for example:
{
{Id: 1, value: item1},
{Id: 2, value: item2},
{Id: 3, value: item3}
}
如何处理这一结果在Ajax “的成功:函数()”?
这很容易与jquery自动完成,因为我可以返回一个Json对象列表。
[jquery Autocomplete process data example]
...
success: function (data) {
response($.map(data, function (item) {
return { label: item.Id, value: item.Value, id: item.Id, data: item };
})
...
但这并不适用于boostrap Typeahead。
任何人都可以帮助我吗?
谢谢。
您是否尝试将返回值转换为'Array'而不是? var list = [{Id:1,value:item1},{Id:2,value:item2},{Id:3,value:item3}];' – 2013-02-15 19:11:47
是的,我没有问题。我的问题是如何绑定与HTML控制的Id。 进程(数据)函数只接受一个字符串数组,而不是一个对象数组 – Gonzalo 2013-02-15 19:18:27
您使用的是最新版本的TypeAhead? – 2013-02-15 19:30:33