Jquery ui Jquery ui自动完成-建议使用外部json
我正在使用jQueryUI自动完成 我的问题是,当我调用外部json时,suggest函数停止工作Jquery ui Jquery ui自动完成-建议使用外部json,jquery-ui,autocomplete,Jquery Ui,Autocomplete,我正在使用jQueryUI自动完成 我的问题是,当我调用外部json时,suggest函数停止工作 $(document).ready(function() { $('.comu').autocomplete({ source: function(request, response) { $.ajax({ url: "https://raw.githubusercontent.com/edusl/test/master/municipios1.json",
$(document).ready(function() {
$('.comu').autocomplete({
source: function(request, response) {
$.ajax({
url: "https://raw.githubusercontent.com/edusl/test/master/municipios1.json",
dataType: "json",
success: response
});
},
minLength: 0,
autoFocus: true,
select: function(event, ui) {
event.preventDefault();
$(".comu").val(ui.item.label);
},
});
});
我的代码示例:
提前谢谢 我想你可能已经找到了回答这个问题的人。但这里有一个解决方案
$(document).ready(function() {
$('.comu').autocomplete({
source: function(request, response) {
$.ajax({
url: "https://raw.githubusercontent.com/edusl/test/master/municipios1.json",
dataType: "json",
success: function(jData) {
var results = [];
$.each(jData, function(ind, val) {
if (val.label.toLowerCase().indexOf(request.term) === 0) {
results.push(val);
}
});
response(results);
}
});
},
minLength: 0,
autoFocus: true,
select: function(event, ui) {
event.preventDefault();
$(".comu").val(ui.item.label);
},
});
});
工作示例:
AJAX请求将只返回所有结果,这就是传递给响应的结果。所以,如果您在将其传递给响应之前不进行过滤,那么最终将得到一个完整的列表
这将使用indexOf过滤列表,但您可以使用任何您喜欢的方法
下面是另一个可以减少HTTP开销的解决方案:
var m = [];
$(document).ready(function() {
$.getJSON("https://raw.githubusercontent.com/edusl/test/master/municipios1.json", function(result) {
$.each(result, function(ind, val) {
m.push(val);
});
});
$('.comu').autocomplete({
source: m,
minLength: 0,
autoFocus: true,
select: function(event, ui) {
event.preventDefault();
$(".comu").val(ui.item.label);
},
});
});
工作示例:
这将一次性获取所有数据并填充数组。然后,Autocomplete可以像平常一样使用它。欢迎使用堆栈溢出。我注意到的第一件事是你没有向你的url传递任何数据,那么你希望得到什么?