【发布时间】:2013-02-26 08:16:58
【问题描述】:
我已经创建了很多自动完成功能,从来没有出现过问题。 这一次,我尝试在现有页面中插入自动完成功能(非常复杂并且有很多 javascript 调用)
我的代码很简单:
$('#named_invitees_0_user_id').autocomplete({
source: 'www.bidon.com'
});
我试过了:
- 在 $(document).ready() 函数中为这个 javascript 充电
- 在页面加载时不收取此 javascript,然后在 Firebug 控制台中执行之前的代码
- 为自动完成添加一些参数(minLength、disabled、delay、beforeSend、...)
- 在源上设置数组
在这两种情况下,我的输入“理解”我的自动完成功能,因为它需要一些自动完成特定的属性
<input id="named_invitees_0_user_id" name="named_invitees[0][user_id]" type="text" value="aaaa" autocomplete="off" class="ac_input">
但是当我在我的输入上写一些东西时,永远不会发送任何请求(关于 Firebug 网络活动)。我认为页面上已经存在的一些 javascript 正在跟踪此查询的控制,但我不知道它可能是什么。
你呢?
编辑:
感谢您的回复。我听从你的建议:
- 尝试将数组设置为“源”:不会改变任何内容
- 删除该页面的所有 JS:只加载了 jQuery-1.4.3 和 jQuery-ui-1.8.20:没有任何改变
- 将 minLength 的值更改为 1:不会改变任何内容
- 检查源url是否返回JSON:已确认
- 检查源网址是否在我的网站命名空间中:已确认
编辑2:
发现问题!
某处有一个隐藏的 JS 代码...一个旧的“自动完成”jquery 包含。结果:定义了 2 个自动完成。 我删除了这个隐藏的代码,一切正常!
感谢您的回复。
【问题讨论】:
-
在您的网站上吗?另外,您知道它目前处于关闭状态,对吗?
-
bidon 是法语单词“foobar”。我可以写“/”、“#”或我网站的真实路径(它适用于其他页面),这不会改变任何事情。
-
由于页面“非常复杂”,您可能希望退出页面上除此脚本和 jQuery/jQuery UI 之外的所有 JS。如果它不起作用,请调试(或更新您的问题)。如果它确实有效,请继续添加脚本,直到找到冲突为止。
-
minLength的值是多少?也许一些现有的代码将其全局设置为一些巨大的价值。或者,有人可能会覆盖.autocomplete()。 -
我编辑了我要回复的第一条消息。
标签: javascript jquery autocomplete