我正在使用jquery自动完成。我对下面的代码不满意,因为肯定有更好的方法来做到这一点。(代码有效)
下面的代码工作时有一个小问题。在选择一个时,它将显示在框中。当我使用backspace时,它不会刷新/填充建议。
问题:我如何使用自动完成只发布一次,并重复使用自动完成的响应和源?
如果有人能建议或指出我能读到的任何文件。
谢谢
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); } });
您应该做的不是将ajax调用添加到autocomplete的source属性,而是将autocomplete函数添加到ajax调用的回调:
$.ajax({
//all your other call settings
success: function(data){
//init autocomplete
$('#birds').autocomplete({
source: data,
//all your other autocomplete settings
});
}
});