我正在使用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