【发布时间】:2013-01-31 19:57:16
【问题描述】:
我正在使用带有 ajax 函数的 Bootstrap typeahead,并且想知道正确的 Json 结果格式是什么,以返回 Id 和描述。 我需要 Id 将 typeahead 选定元素与 mvc3 模型绑定。
这是代码:
[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 "success: function()" 中如何处理这个结果?
使用 jquery Autocomplete 非常容易,因为我可以返回一个 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}]; -
是的,我对此没有任何问题。我的问题是如何将 Id 与 html 控件绑定。 Process(data) 函数只接受字符串数组,不接受对象数组
-
您使用的是最新版本的 TypeAhead 吗?
-
是的,我正在使用最新版本
标签: html ajax asp.net-mvc-3 twitter-bootstrap bootstrap-typeahead