【问题标题】:Form Reset Can't Clear jQuery Autocomplete表单重置无法清除 jQuery 自动完成
【发布时间】:2011-04-13 17:15:14
【问题描述】:

在 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;
    });
});

你会注意到我在接近尾声时清除自动完成的失败尝试之一。

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

这不可能吗?

【问题讨论】:

  • 这是您构建的自动完成功能还是您指的是浏览器的自动完成功能?
  • 我指的是 jQuery UI 自动完成jqueryui.com/demos/autocomplete

标签: jquery asp.net autocomplete


【解决方案1】:

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

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

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

随后使用原始源数组中的数据重新加载选项数组

$("#<%= acSCAC.ClientID %>").autocomplete({"source": originalsourcearray});

我还在 jsfiddle.net 上放了一个我所做的示例 - http://jsfiddle.net/tFkjA/15/

【讨论】:

  • 嗯...我没有看到这是一个选项,添加它会给出:Microsoft JScript 运行时错误:对象不支持此属性或方法
  • 上面的评论是关于flushCache的——这种破坏了模型,因为它被打包在用户控件中,我认为这样做意味着重新添加源和选择处理程序当它已经在 UC 内部处理时的重置代码。只是为了清除一个文本字段。
  • 好的,所以我假设您正在设置页面加载时自动完成的源。如果 destroy 太多,您可以通过 $("#id").autocomplete({"source": insertsourcearrayhere}); 重置为原始来源
  • 源是使用 UC 上设置的属性在 UC 内设置的。我想我试图用我的示例末尾附近的代码来完成你的建议,但也许我弄错了......
  • 虽然我认为您使用的方法 .autocomplete("option", "source", source) 应该可以工作,但我没有成功。我建议的 .autocomplete({"source":source}) 行适合我。
猜你喜欢
  • 2011-02-03
  • 1970-01-01
  • 1970-01-01
  • 2011-07-30
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多