jquery AutoComplete保存输入的搜索字符串

时间:2012-07-23 19:54:07

标签: jquery jquery-ui jquery-ui-autocomplete

我是jquery的新手。我已经阅读并在自动填充方法中尝试了许多不同的事件来做我想要的但没有成功。

无论如何,我有一个自动完成功能,如下所示

$(document).ready(function () {
        $("#SearchContactWorker")
        .each(function () {
            var urlloc = "/Worker/FindWorkers";

            $(this).autocomplete({
                 source: function (request, response) {
                    $.ajax({
                        url: urlloc, type: "POST", dataType: "json",
                        data: { searchString: request.term, maxResults: 10 },
                        success: function (data) {
                            response($.map(data, function (item) {
                                  return { label: item.name, value: item.name, id: item.id }
                            }))

                        }
                    })
                },
                select: function (event, ui) {
                    $("[id$='ContactID']").val(ui.item.id);
                }
            });
        });
    });

当选择某个项目时,我会将ID保存在名为ContactID的隐藏输入中 现在,如果用户输入一些不返回任何结果的文本,我想将该文本保存为另一个名为ContactFullName的隐藏输入类型。我该怎么办?

先谢谢

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找change事件:

$(this).autocomplete({
     source: function (request, response) {
        $.ajax({
            url: urlloc, type: "POST", dataType: "json",
            data: { searchString: request.term, maxResults: 10 },
            success: function (data) {
                response($.map(data, function (item) {
                      return { label: item.name, value: item.name, id: item.id }
                }))

            }
        })
    },
    change: function (event, ui) {
        if (ui.item) {
            $("[id$='ContactID']").val(ui.item.id);
        } else {
            $("#ContactFullName").val(this.value);
        }
    }
});
    如果用户未选择项目,则
  • ui.item将为null
  • 请注意,当字段模糊时,会触发change事件。