1

我正在使用 jQuery v1.8.3 和 jQuery UI v1.9.2。我以这种方式实现了自动完成对话框小部件:

$("#A_autocomplete").autocomplete({
  select   : function(event, ui) {
    event.preventDefault();

    if ( condition ) {
      // Open a modal dialog window
      $("#dialog_window").dialog('open');
    } else {
      // Populate the autocomplete input with the label (not the value)
      $(this).val(ui.item.label);
    }
  },
  ...
});

在上面的代码中,自动完成功能何时conditionfalse预期#A_autocomplete工作。何时打开对话框conditiontrue执行 AJAX 请求,以便使用响应 HTML 数据填充正文内容。该 HTML 数据包含另一个带有idof 的自动完成字段#B_autocomplete,甚至这个自动完成字段也按预期工作。

但是,关闭对话框窗口后,自动完成#A_autocomplete功能不再正常工作:$(this).val(ui.item.label)似乎不再触发。

我该如何解决这个问题?


我注意到,打开对话框后,在 DOM 主体中存在两个自动完成菜单:

# Generated "by" / "for" the #A_autocomplete
<ul class="ui-autocomplete" id="ui-id-1">
  <li>...</li>
</ul>

# Generated "by" / "for" the #B_autocomplete after the dialog is opened
<ul class="ui-autocomplete" id="ui-id-11">
  <li>...</li>
</ul>

我认为问题可能取决于...

4

0 回答 0