Я пытаюсь настроить автозаполнение текстового поля на странице, но я не могу заставить его работать.MVC jQuery autocomplete не работает
У меня есть мои связки сконфигурированы:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js", // version is 2.2.1
"~/Scripts/jquery-ui-{version}.js" // version is 1.11.4
));
В контроллере, функция, которая возвращает список пользователей.
public JsonResult GetInternalUsers() {
var results = db.Users
.Select(x => new {
UserId = x.UserId,
UserName = x.UserName,
}
).ToList();
return Json(results, JsonRequestBehavior.AllowGet);
}
окна редактирования динамически добавляются, так и внизу, XXX заменяется целым числом (то есть, Attendees0
).
<input id="AttendeesXXX" type="text" name="Attendees[X]" class="form-control col-md-6" />
И, наконец, фактический сценарий:
$('#Attendees' + internalAttendees).autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("GetInternalUsers", "Events")',
type: 'GET',
async: false,
success: function (data) {
response($.map(data, function (item) {
return { label: item.UserName, value: item.UserId }
}))
}
});
},
select: function (event, ui) {
$('#Attendees' + internalAttendees).val(ui.item.label);
return false;
},
minLength: 1
});
Часть, которая мне метания больше всего, что когда я печатаю $('#Attendees' + internalAttendees)
, то IntelliSense не вызывает autocomplete
, так что если я даже не знаю, Я включаю правильные библиотеки.
Любая идея, что я делаю неправильно?
Hi @Dan Champagne, попробуйте включить инструменты разработчика f12 и щелкнуть по вкладке «сеть», а затем перезагрузить эту страницу. Вы видите загрузку jquery перед пользовательским интерфейсом jquery? Если вы можете подтвердить, что загрузка jQuery IS сначала, что говорит ваша консоль? –
@ mwwallace8 Да, jQuery загружается перед библиотекой ui. –
И консоль говорит что? Я предполагаю, что в браузере есть некоторая ошибка, если скрипт не работает/не распознает автозаполнение. –