Я использую автозаполнение jQuery в специальном сообщении WordPress. При заполнении поля ввода автозаполнения ajax, похоже, работает правильно и возвращает соответствующие данные. Однако, когда я выбираю элемент в раскрывающемся списке, поле ввода очищается. Я прошел шаг за шагом по JavaScript, а поле ввода #title правильно задано функцией populateForm(), но в какой-то момент после завершения моего скрипта поле опустошено.jQuery Ввод автозаполнения очищается
Кто-нибудь знает, что может быть причиной этого, или достойным способом я мог бы обойти его?
Я включил свои js ниже. Сообщите мне, есть ли другая информация, которая может помочь.
(function ($) {
var url = ajax_object.ajaxurl;
var popped = []
$('#title')
.autocomplete({
source: function(request, response) {
$.getJSON(url, {
term : extractLast(request.term),
action : 'autocomplete'
}, response);
},
search: function() {
var term = extractLast(this.value);
if (term.length < 2) {
return false;
}
},
select: function(event, ui) {
populateForm(ui.item);
},
response: function(event, ui) {
for (var i in ui.content) {
popped.push(ui.content[i]);
}
}
}).data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li></li>")
.data("ui-autocomplete-item", item)
.append("<a><strong>" + item.name + "</strong> (" + item.username.replace(/[^a-zA-Z]+/g, '') + ")</a>")
.appendTo(ul);
};
function populateForm(obj) {
$('input#title').val(obj['username']);
for (var property in obj) {
if (obj.hasOwnProperty(property)) {
$('input#form-' + property).val(obj[property]);
}
}
}
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
})(jQuery);
В самом конце '} (jQuery));' должно быть '}) (jQuery);' – rnevius