Javascript JQuery:dialog不';自动完成

Javascript JQuery:dialog不';自动完成,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我在jQuery1.7.2和jQueryUI1.8.18中使用and 有一个带有文本框的表单,在页面中正常加载时会触发自动完成罚款。很好,很简单 (function() { jQuery(function($) { return $("#type").autocomplete({ source: "/auto-suggest/supplies", minLength: 2 }); }); }).call(this); 但是,如果表单是通过对话

我在jQuery1.7.2和jQueryUI1.8.18中使用and

有一个带有文本框的表单,在页面中正常加载时会触发自动完成罚款。很好,很简单

(function() {

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

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

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

在此方面的任何帮助都将不胜感激。

请尝试委派

最佳解决方案由:ManseUK编写


最佳解决方案由以下人员编写:ManseUK

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

$.get('/auto-suggest/supplies', function(data) {
  //call dialog here
});

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

$.get('/auto-suggest/supplies', function(data) {
  //call dialog here
});
尝试使用-这将确保DOM元素准备就绪

$( ".selector" ).bind( "dialogopen", function(event, ui) {
  $("#type").autocomplete({
      source: "/auto-suggest/supplies",
      minLength: 2
  });
});
尝试使用-这将确保DOM元素准备就绪

$( ".selector" ).bind( "dialogopen", function(event, ui) {
  $("#type").autocomplete({
      source: "/auto-suggest/supplies",
      minLength: 2
  });
});