1

我正在使用 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
  });
});

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

4

2 回答 2

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 插件的更新版本。

于 2012-05-19T21:59:16.680 回答
0

您应该知道这在 jQuery UI 自动完成插件的 1.1 版本中不可用。这似乎是一个错误。它在 1.8.3 jQuery UI 版本中得到修复。

但是您甚至没有使用旧版本的 jQuery UI。参见下文...

从您发布的代码来看,您正在使用由 Joern Zaefferer 编写的已弃用的 1.1 版本。这个插件几乎在两年前就被弃用了,旧插件的链接有参考资料,可以指导您完成任何迁移挑战。

自动完成插件现在是 jQuery UI 的一部分,版本为 1.8.20!我强烈建议您升级到最新版本的 jQuery UI并改用该自动完成插件。

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

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

请记住,您基本上使用的是很长时间没有升级的东西,并且随着更新的浏览器的出现,您的代码只会变得更加难以升级。因此,您基本上会从升级中获得两个好处。您将使用包含所有最新错误修复和易于查找的文档的最新版本,并且您将能够禁用自动完成功能。

于 2012-05-19T21:52:57.327 回答