Я пытаюсь заставить плагин автозаполнения jQuery принять локальную переменную JSON в качестве входных данных. После того, как пользователь выбрал один вариант из списка автозаполнения, я хочу, чтобы смежные поля адреса были заполнены автоматически.
Вот переменная JSON, объявленная как глобальная переменная в файле HTML:
varJSON_address={
"1": {
"origin": {
"nametag": "Home",
"street": "Easy St",
"city": "Emerald City",
"state": "CA",
"zip": "9xxxx"
},
"destination": {
"nametag": "Work",
"street": "Factory St",
"city": "San Francisco",
"state": "CA",
"zip": "94104"
}
},
"2": {
"origin": {
"nametag": "Work",
"street": "Umpa Loompa St",
"city": "San Francisco",
"state": "CA",
"zip": "94104"
},
"destination": {
"nametag": "Home",
"street": "Easy St",
"city": "Emerald City ",
"state": "CA",
"zip": "9xxxx"
}
}
}
Я хочу, чтобы первое поле отображало список именных тегов «origin»: «Home», «Work». Затем, когда выбран «Дом», соседние поля автоматически заполняются улицей: Легкая улица, Город: Изумрудный город и т. Д.
Вот код, который у меня есть для автозаполнения:
$(document).ready(function(){
$("#origin_nametag_id").autocomplete(JSON_address, {
autoFill:true,
minChars:0,
dataType: 'json',
parse: function(data) {
var rows = new Array();
for (var i=0; i<=data.length; i++) {
rows[rows.length] = { data:data[i], value:data[i].origin.nametag, result:data[i].origin.nametag };
}
return rows;
}
}).change(function(){
$("#street_address_id").autocomplete({
dataType: 'json',
parse: function(data) {
var rows = new Array();
for (var i=0; i<=data.length; i++) {
rows[rows.length] = { data:data[i], value:data[i].origin.street, result:data[i].origin.street };
}
return rows;
}
});
});
});
Так что этот вопрос действительно состоит из двух частей:
1) Как получить автозаполнение для обработки многомерного объекта JSON? (При нажатии поля и вводе текста ничего не происходит - нет списка)
2) Как получить другие поля (улица, город и т. Д.) Для заполнения на основе подмассива тегов имени источника?
Заранее спасибо!