我正在使用 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);
}
},
...
});
在上面的代码中,自动完成功能何时condition
按false
预期#A_autocomplete
工作。何时打开对话框condition
并true
执行 AJAX 请求,以便使用响应 HTML 数据填充其正文内容。该 HTML 数据包含另一个带有id
of 的自动完成字段#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>
我认为问题可能取决于...