表单重置无法清除jQuery自动完成

时间:2011-04-13 17:15:14

标签: jquery asp.net autocomplete

在ASP.NET中,我有一个用户控件,它出现在每个页面上,向用户提供一些搜索选项。该控件包含一个“重置”按钮,用于清除所有字段,我正在尝试处理所有客户端。该控件包含,文本框,日期控件,下拉列表和jQuery自动完成。我可以清除除自动完成之外的每个字段:

$(document).ready(function () {
    $("#<%= btnReset.ClientID %>").click(function () {
        $(".txtClear").val('');
        $(".ddlClear").attr('selectedIndex', 0);
        $(".datepicker").val('__/__/____');

        var source = $("#<%= acSCAC.ClientID %>").autocomplete("option", "source");
        $("#<%= acSCAC.ClientID %>").autocomplete("option", "source", [""]);
        $("#<%= acSCAC.ClientID %>").val("");
        $("#<%= acSCAC.ClientID %>").autocomplete("option", "source", source);

        return false;
    });
});

您会注意到我在接近结束时清除自动填充功能的失败尝试之一。

我希望它设置为首次加载页面时的内容 - 其中没有任何内容。

这不可能吗?

1 个答案:

答案 0 :(得分:0)

我认为你可以使用destroy方法或将选项设置为空数组,然后重新应用你想要在那里出现的自动完成数据。 (有关此页面上方法标签的更多信息 - http://jqueryui.com/demos/autocomplete/

$("#<%= acSCAC.ClientID %>").autocomplete("destroy"); //returns input to init status

$("#<%= acSCAC.ClientID %>").autocomplete({"source": [""]}); //clears the autocomplete options array

接下来使用原始源数组

中的数据重新加载options数组
$("#<%= acSCAC.ClientID %>").autocomplete({"source": originalsourcearray});

我还在jsfiddle.net上展示了我所做的一些事情 - http://jsfiddle.net/tFkjA/15/