1

我将http://docs.jquery.com/UI/Dialoghttp://docs.jquery.com/UI/Autocomplete与 JQuery 1.7.2 和 JQuery-UI 1.8.18 一起使用。

有一个带有文本框的表单,当正常加载到页面中时,它将触发自动完成。很好很简单!

(function() {

  jQuery(function($) {
    return $("#type").autocomplete({
      source: "/auto-suggest/supplies",
      minLength: 2
    });
  });

}).call(this);

但是,如果表单是通过对话框呈现的,则不会触发自动完成(没有 UI 更改,并且服务器显示无法访问源 URL)。我假设这是因为输入字段在文档加载时尚未呈现。因此,我尝试使用对话框的create事件来分配自动完成功能,方法是将函数作为回调传递给它。同样,自动完成不会触发。

我对如何让它发挥作用感到困惑。我很想创建对话框,然后在加载文档时隐藏,但在这种情况下,可能有多个对话框实例,因为它与表数据相关。

对此的任何帮助将不胜感激。

4

3 回答 3

3

尝试使用open事件- 这将确保 DOM 元素准备就绪

$( ".selector" ).bind( "dialogopen", function(event, ui) {
  $("#type").autocomplete({
      source: "/auto-suggest/supplies",
      minLength: 2
  });
});
于 2012-04-30T11:02:15.607 回答
1

尝试委托

委托自动完成

最佳解决方案作者:ManseUK

于 2012-04-30T10:58:37.980 回答
1

您甚至可以获取值,然后在成功调用对话框中

$.get('/auto-suggest/supplies', function(data) {
  //call dialog here
});
于 2012-04-30T11:02:06.853 回答