У меня есть работающее автозаполнение jQuery (по bassistance ) на мой взгляд. Проблема в том, что я просто не понимаю этого. Действие MVC возвращает данные в формате JSON, а плагин прекрасно их считывает, а фильтр отлично работает - в нем перечислены результаты, и я могу выбрать из выпадающего списка. Но затем, когда я выбираю это, ничего не происходит - я выбираю элемент либо нажатием Enter, либо щелкая по нему. Я думаю, что я должен как-то подключить функцию result () - я пытался с опцией onItemSelect, но она не работает, ничего не происходит, result () не срабатывает.
В конце концов, все, что мне нужно, - это возможность постоянно добавлять элемент, который пользователь выбирает, в список или в список.
Я думаю, что большинство моих проблем связано с отсутствием знания jQuery или JavaScript в целом, которое, как я признаю, мне никогда не нравилось, но теперь с ASP.NET MVC я вынужден его изучить, на самом деле я нахожу это очень полезным возможность обойти постбэки ..
Это мой код:
<script type="text/javascript">
$(document).ready(function() {
$("#Products").focus().autocomplete('<%=Url.Action("GetProducts", "Product") %>', {
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].product_id, result:data[i].product_name1};
}
return rows;
},
formatItem: function(row, i, n) {
return row.product_PrettyId + ' - ' + row.product_name1 + ' (' + row.product_price + ' €) ';
},
width: 900,
minChars: 0,
max: 0,
mustMatch: true,
onItemSelect: result,
});
});
function result(extra) {
$("#result").val(extra);
}
</script>
Вид:
<div>
<%=Html.TextBox("Products", null, new { style = "font-size: 20px; width: 900px"}) %>
</div>
<div id="result"></div>
Также обратите внимание, что мое решение должно работать с включенным и отключенным JavaScript, поэтому в моем окончательном решении я также хотел бы предоставить элемент управления кнопки, который бы выполнял обратную передачу и классическую публикацию в действие моего контроллера для добавления элемента в список. .