jQuery自动完成功能不起作用......

时间:2010-01-15 01:58:31

标签: javascript jquery autocomplete

我正在使用jQuery的自动完成功能,并且遇到了一个小问题。我有一个div元素,其中包含一些文本和可变数量的输入框,这些输入框具有自动完成功能。当用户单击div元素中的文本时,将删除输入框。单击文本可在显示输入框和不显示输入框之间切换。每次单击文本都会调用一个php脚本,该脚本将返回div元素的新html文本。

使用类似于以下内容的PHP代码创建自动完成输入:

php code

echo "<id='a' value='Smith' autocomplete='off'>";
echo "<script type=\"text/javascript\">$('a').autocomplete('do_name_lookup.php',{minChars:3,max:999});</script>";
echo "<script type=\"text/javascript\">$('a').result(function(event, data, formatted) {alert(data[0])});</script>";

在静态网页上,两个script元素会显示在“$(document).ready”函数中。但是,由于我的页面是动态的,因此输入框在$(document).ready被触发后很长时间内创建。因此,我必须在每个输入框之后执行javascript代码。这个设置在第一次执行上面的PHP代码时工作正常,但第二次执行代码时,自动完成功能就消失了。

任何人都可以向我解释为什么会发生这种情况以及如何解决这个问题?我怀疑是我多次声明一个具有相同名称的变量,这会产生某种类型的冲突。

1 个答案:

答案 0 :(得分:0)

<id='a' value='Smith' autocomplete='off'>

这不是有效元素,它错过了标记名称。想修改“input”?

$('a')…

这将选择页面中的所有锚元素(链接)。我想你想要id选择器$('#a')

此外,您应该将两个脚本元素合并为一个。不仅因为某些浏览器存在限制。 <script>可能包含多个JavaScript语句,您可能只想要chain the two methods相同的选定元素。