我在使用jQuery自动完成时遇到了一个糟糕的时间 - HTTP请求没有发生 - 根本没有数据传递给源。控制台没有关于任何错误的输出。
有没有人有想法?
对于记录 - 使用$.ajaxSetup()
设置AJAX URL / CSRF密钥等,并且适用于所有其他$.ajax()
次呼叫。
非常感谢所有帮助。感谢
$('.select_location_dropdown').autocomplete({
source: function (request, response) {
$.ajax({
data: {
action:'location_management',
sub_ac:'get_location_list',
query: request.term
},
success: function(data) {
var transformed = $.map(data.search_response, function (el) {
return {
label: el.name
};
});
response(transformed);
},
})
},
limit: 4,
onAutocomplete: function(val) {
},
minLength: 1,
});
答案 0 :(得分:0)
好像你没有为ajax调用添加url。 ajax调用通常如下所示:
dataValue2
答案 1 :(得分:0)
我认为这可能是因为自动完成对象末尾的额外逗号。
$('.select_location_dropdown').autocomplete({
source: function (request, response) {
$.ajax({
data: {
action:'location_management',
sub_ac:'get_location_list',
query: request.term
},
success: function(data) {
var transformed = $.map(data.search_response, function (el) {
return {
label: el.name
};
});
response(transformed);
},
})
},
limit: 4,
onAutocomplete: function(val) {
},
minLength: 1
});
minLength
不需要逗号,因为它是最后一个键值对。
答案 2 :(得分:0)
对于那些想知道我是否有这个工作的人来说,答案是否定的 - 不管是针对这个特定的用例。我现在使用Dev Bridge jQuery Autocomplete plugin用于其他AC用例。经过一些调整后,我的工作正常。
我正在考虑使用on(function(){});
方法实现自己的方法,但决定反对它。
但是,对于这个特殊情况:
相反,我正在使用Google Maps Places Autocomplete API,这对我们需要的东西来说更合适,即使我们最终还是要为它付钱,它仍然需要"需要"那种情况。
以下是已实施的代码。它立刻就行了。
function initAutocomplete() {
try {
autocomplete_from = new google.maps.places.Autocomplete(
(document.getElementById('select_location_from')), {
types: []
}
);
autocomplete_to = new google.maps.places.Autocomplete(
(document.getElementById('select_location_to')), {
types: []
}
);
autocomplete_to.addListener('place_changed', fillInAddress);
autocomplete_from.addListener('place_changed', fillInAddress);
} catch (ex) {}
}
function fillInAddress() {
// Get the place details from the autocomplete object.
var place_a = autocomplete_to.getPlace();
var place_b = autocomplete_from.getPlace();
}