我正在使用jquery自动完成功能。我对下面的代码不满意,因为必须有更好的方法来执行此操作。 (代码有效)
下面的代码有点问题。在选择一个它显示在框中。当我使用退格时,它不会刷新/填充建议。
问题: 如何使用自动填充功能仅发布一次并重复使用自动填充源的响应?
如果有人可以建议或指出我可以阅读的任何文件。
由于
jquery-1.9.1.min.js jquery-ui-1.10.0/jquery-ui.js $("#birds").autocomplete ({ source: function(request, response) { $.ajax( { url: "page.aspx", data: { Para: request.term, GroupID: 11, rGUI: 'd9', rURL: 'domain.com/', task: 'get Stuff' }, type: "POST", dataType: "json", success: function(data) { //response: function(item) { var arr = $.map(data, function(item) { return { label: item.LN60, value: item.LN60, NDC: item.NDC } }); $("#birds").autocomplete({ source: arr, minLength: 1 }); $("#birds").autocomplete({ close: function(event, ui) { suggestDrugs_Request(); } }); } }); }, minLength: 2, select: function(event, ui) { log(ui.item ? "Selected: " + ui.item.value + " aka " + ui.item.NDC : "Nothing selected, input was " + this.value); } });
答案 0 :(得分:4)
你应该做的不是将ajax调用添加到自动完成的source属性,而是将自动完成功能添加到ajax调用的回调中:
$.ajax({
//all your other call settings
success: function(data){
//init autocomplete
$('#birds').autocomplete({
source: data,
//all your other autocomplete settings
});
}
});
答案 1 :(得分:1)
制作$ .ajax请求并在success: function(data) {
函数内绑定自动复合(生成.autocomplete函数调用)。
然后将自动复制'source
设置为返回的data
(现在显然是静态的)