Я пытаюсь создать функцию Javascript, которая будет принимать значение из одного поля выбора, а затем использовать его для сравнения массива JSON. Если какие-либо элементы массива соответствуют выбранному пользователем значению, функция добавит эти значения в другое поле выбора.
Логика:
- Активировать функцию с помощью HTML-атрибута "onchange"
- Получить выбранное пользователем значение из поля выбора
- Сравните это значение с массивом JSON
- Если значение массива == выбранное значение, добавить в другое поле выбора
Код:
//this function modifies a select field depending on what value was selected by its predecessor
function tariffs()
{
//variable selection equals the selected value chosen by the user in that field
var selection = document.getElementById('tariff_net').options[document.getElementById('tariff_net').selectedIndex].value
//for loop to go through JSON values to compare with the value chosen by the user
for(var i = 0; i < values.preset_name.length ; i++)
{
//if the JSON value equals the user selected value
if (values.preset_name[i] == selection)
{
//append it to the "tariff_name" select field
var option = values.preset_name[i];
var selectfield = document.getElementById('tariff_name');
selectfield.appendChild(option);
}
}
}
Вот снимок экрана, показывающий два поля выбора (одно сверху повлияет на нижние параметры полей выбора)
http://i.imgur.com/B0eHS.png
В данный момент мой код не работает, и я получаю сообщение об ошибке JavaScript:
Не удалось преобразовать аргумент JavaScript arg 0 [nsIDOMHTMLInputElement.appendChild]
[Break On This Error] selectfield.appendChild (опция);
Мне также интересно, как я могу заставить Javscript обновить поле выбора всех значений и затем заполнить его. Это предотвратит большое накопление дублированных опций при вызове функции.
Спасибо