Работа с 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, время: 23:41. |