Я пытаюсь настроить автозаполнение в jquery, которое получает информацию от пользователя в Active Directory. Пользователь может ввести несколько букв фамилии человека, и в результате появится двухмерный список (Список>), содержащий всех людей, чья фамилия начинается с этих букв. Каждый список содержит имя, отчество, фамилию и AD имя человека. И конечно, каждый элемент List> представляет человека.
У меня нет проблем с получением данных в jquery. Проблема в том, что я не могу понять, как заставить его заполнять поля Employee_Name и Employee_Name_AD информацией в этом массиве, когда пользователь нажимает на имя из списка. Это мой jquery код:
@section page {
<script type="text/javascript">
$(document).ready(function () {
var name;
var adname;
$("#TESTING").autocomplete(
{
source: function (request, response) {
$.ajax({
url: "/Employees/GetUserList",
type: "POST",
dataType: "json",
data: { query: request.term },
success: function (data) {
response($.map(data, function (item) {
name = item[0] + " " + item[1] + " " + item[2];
adname = item[3];
return { label: name, data: [name, adname] };
}))
},
select: function (event, ui) {
$('#Employee_Name').val(ui.data.item.data[0]);
$('#Employee_Name_AD').val(ui.data.item.data[1]);
}
})
},
});
})
</script>
}
И на той же странице приведен соответствующий код Razor:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Employee</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<div class="col-md-10">
@Html.TextBox("TESTING")
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Employee_Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Employee_Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Employee_Name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Employee_Name_AD, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Employee_Name_AD, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Employee_Name_AD, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
Я нашел нечто очень близкое к тому, что я хочу, благодаря переполнение стека: http://jsbin.com/vasuliru/2/edit?html, js, вывод
Проблема предыдущего примера заключается в том, что данные объявляются на самой странице, а не извлекаются из источника данных. Как я могу изменить свой код, чтобы заставить его делать то, что я хочу?