В моем случае мне нужно записать другое поле 'id' в скрытом вводе. Поэтому я добавляю еще одно поле в данные, возвращаемые при вызове ajax.
{label:"Name", value:"Value", id:"1"}
И добавили ссылку «Создать новое» внизу списка. При нажатии «Создать новый» появится модальное окно, и вы сможете создать новый элемент оттуда.
$('#vendorName').autocomplete
(
{
source: "/Vendors/Search",
minLength: 2,
response: function (event, ui)
{
ui.content.push
({
label: 'Add a new Name',
value: 'Add a new Name'
});
},
select: function (event, ui)
{
$('#vendorId').val(ui.item.id);
},
open: function (event, ui)
{
var createNewVendor = function () {
alert("Create new");
}
$(".ui-autocomplete").find("a").last().attr('data-toggle', 'modal').addClass('highLight');
$(".ui-autocomplete").find("a").last().attr('href', '#modal-form').addClass('highLight');
}
}
);
Думаю, дело в том, что вы можете добавить любое дополнительное поле данных, кроме «label» и «value».
Я использую мод начальной загрузки, и это может быть как показано ниже:
<div id="modal-form" class="modal fade" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-body">
<div class="row">
</div>
</div>
</div>
</div>