Javascript 在自动完成响应中显示酒店
我的视图中有Javascript 在自动完成响应中显示酒店,javascript,jquery,typescript,autocomplete,Javascript,Jquery,Typescript,Autocomplete,我的视图中有autocomplete输入 这里是脚本,我如何处理它 $(targetSelector).each(function() { $(this) .autocomplete({ delay: 10, minLength: 0, source(request, response) { $(this.element[0]).attr("data-req-term", request.term); $
autocomplete
输入
这里是脚本,我如何处理它
$(targetSelector).each(function() {
$(this)
.autocomplete({ delay: 10, minLength: 0, source(request, response) {
$(this.element[0]).attr("data-req-term", request.term);
$.ajax({
url: $(this.element[0]).attr("data-source"),
dataType: "json",
data: {
term: request.term
},
success(data) {
console.dir(data);
const results = [];
$.map(data.cities, function(value, key) {
results.push(value);
return $.map(value.airports, (value2, key2) =>
results.push(value2)
);
});
$.map(data.airports, (value, key) => results.push(value));
return response(results);
},
error() {
return response([]);
}
});
return null;
}, focus(event, ui) {
return false;
}, select(event, ui) {
const qel = $(event.currentTarget);
qel.val(ui.item.fullname);
$(qel.attr("data-id-element")).val(ui.item.id);
return false;
}
})
.data("ui-autocomplete")._renderItem = function(ul, item) {
return create_autocomplete_item($(this.element[0]), ul, item);
};
if (enableAutocompleteSelect) {
$(targetSelector).on("autocompleteselect",
function() {
if ($(this)[0].id.indexOf("origin") !== -1) {
const id = $(this)[0].id.split("_")[2];
$(`#search_legs_${id}_destination_text`).focus();
}
});
}
$(targetSelector).focus(function() {
$(this).keydown();
});
$(targetSelector).on("blur", function() {
const value = $(this).val() as string;
if (value.trim() == "") {
$(this).val("");
}
});
});
}
此函数用于获取自动完成的数据。展示机场和城市的展览
这是我从服务器得到的答案
我还需要填充酒店以自动完成结果
我怎样才能做到这一点呢?我可以得到酒店的价值,只要加上这一行就行了
$.map(data.hotels, (value,key)=> results.push(value));