Работа с JSON
Доброго времени суток!
Подскажите пожалуйста, у меня в форме есть: <select class="input_form delivery select" name="delivery" required > <option value="">Выберите пункт</option> </select> Остальные пункты <option value=""></option> добавляются из JSON файла и именно тут должны находиться ключи объектов.
var requestURL = '/1234.json';
var request = new XMLHttpRequest();
request.open('GET', requestURL,true);
request.responseType = 'json';
request.send();
let selectMarc = document.querySelector('[name=delivery]');
let selectModels = document.querySelector('[name=models]');
request.onload = function(data) {
var car = request.response;
ShowCarModels(car);
}
function ShowCarModels(car){
var key = Object.keys(car);
for (var i = 0; i <key.length; i++) {
var myOption = document.createElement('option').cloneNode(true);
myOption.setAttribute('value', key[i]);
myOption.textContent = key[i];
}
selectMarc.appendChild(myOption);
console.log(myOption);
}
Проблема в том, что создается только один пункт option с именем последнего объекта, подскажите как вывести все имена объектов имеющиеся в файле в форму. |
l_mke,
18 строку перенесите на 20 |
Цитата:
|
Спасибо большое)
|
l_mke,
какой формат у car? |
json
|
А еще можете подсказать, вот этот кусок кода выводит то что есть в объекте в другой select в соответствии какой был выбран Object.keys(car),
<select class="input_form models select" name="models" required> <option value="">Выберете пункт</option> </select>
selectMarc.onchange = function(e){
var marcValue = e.target.value;
var modelOptions = '<option value="">Модель авто</option>';
console.log(car[marcValue]);
if(car[marcValue]){
for (var j = 0; j < car[marcValue].length; j++) {
var myOptionModel = document.createElement('option');
myOptionModel.setAttribute('value', car[marcValue][j]);
myOptionModel.textContent = car[marcValue][j];
selectModels.appendChild(myOptionModel);
}
}
}
при выборе пункта он добавляет то что содержится в объекте , но если выбрать сначала один, а потом нажать на другой, то он не удаляет, то что относилось к другому пункту, подскажите пожалуйста, что можно с этим сделать |
l_mke,
if(car[marcValue]){
*!*
selectModels.options.length = 1;
*/!*
for (var j = 0; j < car[marcValue].length; j++) {
|
Спасибо за помощь!
|
| Часовой пояс GMT +3, время: 10:26. |