Во-первых, вот несколько вещей, которые я рекомендую вам изучить:
Использование IDE, которая будет автоматически проверять синтаксис (или более надежный редактор кода), такой как код Visual Studio или Sublime, при работе над таким проектом.
VSCode: https://code.visualstudio.com/
Возвышенное: https://www.sublimetext.com/
Используя консоль инструментов разработчика, вы увидите ошибки и другую полезную информацию.
Инструменты разработчика Chrome: https://developer.chrome.com/devtools
Лишь несколько вещей, о которых следует помнить на потом, я вижу здесь две проблемы, которые необходимо решить.
При инициализации объекта dataFourthSelect
произошла синтаксическая ошибка. Похоже, вы используете другую цитату стиля, чтобы закрыть ключи. Вот исправленная версия:
var dataFourthSelect = {
'C' : [{
form: 'CNN',
link: 'https://www.cnn.com'
}],
'D' : [{
form: 'MSNBC',
link: 'http://www.msnbc.com'
}]
}
Другая проблема - это значение, присвоенное a
, а не ключ dataThirdSelect
:
$('#test2').on('change', function() {
var a = $(this).val();
if (a !== '') {
for (var i = 0; i < dataThirdSelect[a].length; i++) {
$('#test3').append($("<option></option>")
.attr("value", dataThirdSelect[a][i])
.text(dataThirdSelect[a][i]));
}
}
});
Следуя ранее сконструированным параметрам, я думаю, вы захотите изменить клавиши Test1
и Test2
:
var dataThirdSelect = {
Test1: ['C', 'D'],
Test2: ['G', 'H']
}
до
var dataThirdSelect = {
A : ['C', 'D'],
B : ['G', 'H'],
E : ['C', 'D'], //Fill these in with the desired values.
F : ['G', 'H']
}
Надеюсь, это приведет вас на правильный путь. ?
[Изменить] Чтобы помочь ответить на ваш комментарий:
Исходя из вашего текущего дизайна, я мог бы рекомендовать назначать выбранные значения словарю для каждого события изменения. Например:
var selectedOptions = {};
$('#test2').on('change', function() {
var a = $(this).val();
selectedOptions['test2'] = a
//...
}
Затем при отправке вы можете проверить эти значения следующим образом:
Object.keys(selectedOptions).forEach((option) => {
//Do something with each option using selectedOptions[option]
console.log(selectedOptions[option]);
});