#jquery #autocomplete
#jquery #автозаполнение
Вопрос:
Я скачал этот плагин:http://code.google.com/p/jquery-autocomplete
Я пишу это:
$(document).ready(function () {
$('#txtStoryTags').autocomplete('@Url.Action("GetTags", "Thread")', { dataType: 'json',
parse: function (data) {
var rows = new Array();
for (var i = 0; i < data.length; i ) {
rows[i] = { data: data[i], value: data[i].Name, result: data[i].Name };
}
return rows;
},
formatItem: function (row) {
return row.Name;
},
delay: 40,
autofill: true,
selectFirst: false,
highlight: false,
multiple: true,
multipleSeparator: ";"
});
});
И результатом Json является:
[{"TagID":2,"Name":"tag1","Weight":4},{"TagID":4,"Name":"tag2","Weight":1},
До этого момента все было нормально.
Но когда я пытаюсь использовать автозаполнение, я получаю в результате:
[object Object],[object Object],[object Object],[object Object],[object Object]
Ну, это не ожидаемый результат.
Вопрос в том, что не так с этим клиентским скриптом? Я почти уверен, что проблема кроется здесь, просто не знаю точно, где.
Ответ №1:
Я предполагаю, но
formatItem: function (row) {
return row.Name;
},
… мне кажется неправильным. В «строках», которые вы предоставляете плагину, есть data
, value
и result
поля, но нет Name
поля.
Комментарии:
1. Только что проверил это, и, к сожалению, это не тот случай.
2. @Lukasz Baran: Я посмотрел исходный код плагина, на который вы ссылались. В нем нет ссылки ни на функцию ‘parse’, ни на функцию ‘formatItem’. Вы уверены, что у вас правильный плагин?
3. О, вы правы. Есть несколько плагинов с точно таким же названием, и я пропустил это.