【问题标题】:How to clear and force request on subordinate jQuery UI Autocomplete如何清除和强制从属 jQuery UI 自动完成上的请求
【发布时间】:2013-09-05 22:53:55
【问题描述】:
我有 2 个自动完成控件。假设第一个是 country,第二个是 city。
当 country 中的值发生更改时,如何清除 city 中的值和显示的文本?从服务器检索城市列表。如果 country 改变了,当用户开始在 city 自动完成中输入内容时,城市列表应该被丢弃,并且应该对城市列表提出新的请求。如何强制这种行为?
jQuery 1.7.1,用户界面 1.8.18
【问题讨论】:
标签:
jquery
jquery-ui
autocomplete
【解决方案1】:
城市列表更改后,您必须再次创建城市的自动完成功能。您的流程将是这样的:
更改州名 -> 调用 ajax 函数从服务器获取城市列表 -> 构建选项并分配给城市选择元素,然后再次执行以下行。
$("#city").combobox();
希望您使用自动完成的组合框小部件。否则,仅从服务器重新创建自动完成源,更好的是 json 格式的 feth,如下所示:
var availableTags = [
"NewCity1",
"NewCity2",
"NewCity3",
"NewCity4"
];
$( "#city" ).autocomplete({
source: availableTags
});
【解决方案2】:
我尝试了一些,这对我有用:
hiddenInput.val('');
visibleInput.val(visibleInput.attr('placeholder')).addClass('WaterMarkedTextBox');
visibleInput.flushCache();
两个输入字段都是由 city 自动完成创建的 HTML 元素。
如果没有flushCache 调用,就没有空城市值的新请求。