获取jquery自动完成的选定值

时间:2016-08-31 16:00:03

标签: jquery autocomplete

我有一个表单,它可以有多个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>"));
            }
        });

1 个答案:

答案 0 :(得分:1)

您可以使用submit个活动,.each()来迭代.autocomplete个元素,FormData .append()来追加.autocomplete("instance").selectedItem .label.valueFormData个对象; $.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);
})