Я пытаюсь проанализировать возвращенные данные из json в поля формы с помощью формы автозаполнения, я смог заставить работать автозаполнение детали.
jQuery(document).ready(function() {
var autocompleteArray = new Array();
jQuery("#business-name").keyup(function() {
myVar = jQuery(this).val();
jQuery.ajax({
url: '<API_URL>',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "<AUTHORIZATION_TOKEN>");
},
crossDomain: true,
dataType: 'json',
type: 'get',
data: {"q":myVar,"items_per_page":5},
success: function(data) {
// Process data here to autofill form input elements with json reponse.
console.log(autocompleteArray); // View the Array in console
autocompleteArray.length = 0; // EMPTY ARRAY
jQuery(data.items).each(function(index, value) {
// console.log(value.title); //entry into json
autocompleteArray.push(value.title);
});
jQuery("#business-name").autocomplete({
source: autocompleteArray
});
},
error: function (jqXHR, exception) {
var msg = '';
if (jqXHR.status === 0) {
console.log('Unable to Establish Connection');
} else if (jqXHR.status == 404) {
console.log('Requested Page Not Found [404]');
} else if (jqXHR.status == 500) {
console.log('Internal Server Error [500]');
} else if (exception === 'parsererror') {
console.log('Requested JSON Parse Failure');
} else if (exception === 'timeout') {
console.log('Time Out Error');
} else if (exception === 'abort') {
console.log('Ajax Request Aborted');
} else {
console.log('Uncaught Error' + jqXHR.responseText);
}
}
});
});
});
Поэтому, когда пользователь вводит название компании,Форма предлагает 5 вариантов автозаполнения, теперь мне нужно создать действие по щелчку для каждого из возвращенных параметров, которое будет извлекать данные из базы данных и заполнять форму.
Моя проблема в том, где я должен вставить код автозаполнения, нужен ли он в функции успеха данных keyup?И какой синтаксис подойдет мне лучше всего?
Некоторое время не работал над jQuery, поэтому сейчас я борюсь с этим.
Это то, о чем я думаю ...
jQuery(document).on('click', '.ui-menu-item', function(){
var coMpany = jQuery(this).val();
value.coMpany.address1 // <<<<<<<< push this value to form address1
value.coMpany.postcode // <<<<<<<< push this value to form postcode
// and so on and so on
});
(Как я могу передать (данные) вышеуказанному и использовать его для заполнения формы)
Он почти работает с этим кодом, моя проблема в том, что код регистрирует все выбранные элементы - я хочу получить данные только для выбранного элемента.
jQuery(document).on('click', '.ui-menu-item', function(){
jQuery(data.items).each(function(key, value) {
if (jQuery(".ui-menu-item").val() === value.title) {
// RUN THIS CODE FOR SELECTED ITEM
console.log(value.title);
console.log(value.address.address_line_1);
// PROBLEM * CODE LOGS ALL ITEMS IN ".ui-menu-item" CLASSES (I ONLY WANT IT TO LOG THE ONE I CLICK ON)
}
});
});