如何在添加到元素后删除自动完成?

在我向以下元素添加自动完成后:

commObj=$("#communityName").autocomplete("auto_commName_backend.php", {'onItemSelect': handleItemSelect}, {'extraParams': 'ndo' + ndo}); 

有没有办法可以禁用它或动态删除元素的自动完成?

我正在使用Dylan Verheul的修改过的jquery自动完成插件。 http://www.pengoworks.com/workshop/jquery/autocomplete_docs.txt

您可以使用以下代码行删除自动完成行为:

 if (jQuery(control).data('autocomplete')) { jQuery(control).autocomplete("destroy"); jQuery(control).removeData('autocomplete'); } 

我找到的最简单,最安全的方法是:

 $(control).autocomplete({source: []}); 

或者,如前所述,这也有效:

 $(control).autocomplete("destroy"); 

如果您确定您的控件具有自动完成处理程序集。

如果您向元素添加类似“EnableAC”的类,则可以将该类作为自动完成的目标。 当您完成自动完成并想要禁用它时,您将删除该类。

为什么要禁用该function呢? 如果用户想要更改其选择并且自动填充不会触发,则可能会使用户感到困惑。

我刚刚简要介绍了插件的js文件。

在初始化jquery.autocomplete.js插件期间似乎有一个javascript行(编号21),它将原始源输入设置为:

 input.autocompleter = me; 

如果没有测试,也许您可​​以简单地调用以下内容来删除插件和原始输入之间的链接?

 $('#').autocompleter = null; 

该插件非常紧密地连接到 。 如果它是我的页面,我想我只有两个带有相同“名称”的标签,一个带有自动完成,一个没有。 当我想在它们之间切换时,我会使一个禁用并隐藏,并启用/显示另一个。 ( 编辑哦,并确保字段的值在切换时来回复制)

我刚试过$(’#’)。autocomplete = null; 它的工作原理。 我允许改变苍蝇的名称,结果不会显示,现在确实如此。 旧的未更改的名称将在此之前显示新的名称

在最新版本的jQuery UI(1.12)中,即使存在自动完成数据, $(control).data('autocomplete')也不会返回true。

相反,检查ui-autocomplete-input类是否存在返回true。

我相信以下内容应该足够了。

 if ($(control).hasClass('ui-autocomplete-input')) { $(control).autocomplete("destroy"); }