如何通过单击href来启动/停止自动完成插件?

时间:2012-05-19 21:42:21

标签: jquery autocomplete unbind

我正在使用Joern Zaefferer的jQuery Autocomplete插件1.1。

代码上的一切正常。

然而,文件很少。我需要有人帮我找出如何使用href链接打开自动完成'开'或'关'。

unautocomplete()函数似乎应该以某种方式禁用它但不确定如何正确调用它。

我在加载页面时使用它来激活它:

$().ready(function() {
  $("#term").autocomplete("autocomplete.php", {
    width: 260,
    matchContains: true,
    noCache: true,
    minChars: <?php echo $auto_char; ?>,
    selectFirst: false
  });
});

我所做的是在返回结果的末尾添加了一个“隐藏建议”链接,并尝试在用户点击它时禁用自动完成功能。

2 个答案:

答案 0 :(得分:2)

假设您的HTML看起来像这样:

<input type="text" id="term" />
...
<button id="hide">Hide suggestions</button>

您可以通过这种方式调用$.unautocomplete来禁用#term元素。

$(document).ready(function(){
  $("#hide").click(function(){
    $("#term").unautocomplete();
  });
});

或者,我猜您可以使用它来禁用所有自动填充功能:

$(document).ready(function(){
  $("#hide").click(function(){
    $(":input").unautocomplete();
  });
});

此外,您可能希望升级到更新版本的AutoComplete插件。

答案 1 :(得分:0)

你应该知道这是not available in the 1.1 release of the jQuery UI autocomplete plugin。它似乎是一个错误。它已在1.8.3 jQuery UI版本中修复。

但你甚至没有使用旧版本的jQuery UI。请阅读以下内容......

您正在使用deprecated 1.1 release written by Joern Zaefferer,根据您发布的代码判断。这个插件差不多在两年前就被弃用了,旧插件的链接有引用,可以指导您完成任何迁移挑战。

autocomplete插件现在是jQuery UI的一部分,版本为1.8.20!我强烈建议您upgrade to the latest version of jQuery UI并使用该自动完成插件。

之后,documentation显示您可以通过在自动完成最初绑定到的选择器上调用以下方法来禁用自动完成:

$( ".selector" ).autocomplete({ disabled: true });

请记住,您基本上使用的东西在很长一段时间内都没有升级过,而且随着新浏览器的推出,您的代码只会变得更难以升级。所以你基本上可以从升级中获得两个好处。您将使用最新版本的所有最新错误修正和易于查找的文档,您将能够禁用自动完成。