我有一个表单,它可以有多个jquery自动完成。提交表单时,我想在自动填充中获取所选值,将值转储到隐藏文本字段并提交给服务器。我似乎无法找到有关如何执行此操作的任何信息。我的代码在下面工作正常,并使用类自动完成绑定到所有文本字段。关于这个的任何想法?
$(".autocomplete").autocomplete({
autoFocus: true,
source: function(request, response) {
$.ajax({
url: "@Url.Action("SearchEmployees", "ProjectBase")",
minLength: 3,
dataType: "json",
type: "GET",
data: { term: request.term },
success: function(data) {
response($.map(data, function(item) {
return {
label: item.Fullname,
value: item.EmployeeId
};
}));
},
error: function(xhr, textStatus, errorThrown) {
alert("error: " + errorThrown);
}
});
},
select: function(event, ui) {
event.preventDefault();
$(this).val(ui.item.label);
},
change: function (event, ui) {
alert("change: " + (ui.item ? ui.item.label : "<no item>"));
}
});
答案 0 :(得分:1)
您可以使用submit
个活动,.each()
来迭代.autocomplete
个元素,FormData
.append()
来追加.autocomplete("instance").selectedItem
.label
, .value
到FormData
个对象; $.post()
FormData
对象到服务器。见instance()
$("form").on("submit", function(e) {
e.preventDefault();
var data = new FormData();
$(".autocomplete").each(function(index, selected) {
var curr = $(this).autocomplete("instance").selectedItem;
data.append(curr.label, curr.value);
});
$.post("/path/to/server", data);
})