2

我已经创建了许多自动完成功能,从来没有出现过问题。这一次,我尝试在现有页面中插入一个自动完成功能(非常复杂并且有很多 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 个自动完成。我删除了这个隐藏的代码,一切正常!

感谢您的回复。

4

1 回答 1

1

确保您的源输出正确的 json。

检查http://jqueryui.com/autocomplete/#remote以获取文档和示例代码

这是一个例子:

 $( "#named_invitees_0_user_id" ).autocomplete({
      source: "search.php",
      minLength: 2
    });

在源之后使用“:”!

于 2013-02-26T08:24:49.330 回答