Причина в том, что вы используете дубликат идентификатора селектора 1 для элемента
и элемента. Вы можете использовать только уникальный идентификатор селектора. Я обновил ваш код, найдите приведенный ниже код и сообщите мне, если возникнет какая-либо проблема.
const product = [1, 2, 3];
const productDropDown1Relation = {
1: ['info', 'math'],
2: ['history', 'geography'],
3: ['science', 'sport'],
}
const dropDown1DropDown2Relation = {
info: ['info1', 'info2'],
math: ['math1', 'math2'],
history: ['history1', 'history2'],
geography: ['geography1', 'geography2'],
science: ['science1', 'science2'],
sport: ['sport1', 'sport2'],
}
$(document).ready(function() {
$("#dropdown2, #dropdown3").hide();
const optionString = buildOptions(product);
$("#product").html(optionString);
$("#product").change(function() {
debugger;
const selected = $("#product").val();
const optinString = buildOptions(productDropDown1Relation[selected]);
$('#dropdown2').html(optinString);
$('#dropdown2').show();
});
$("#dropdown2").change(function() {
const selected = $("#dropdown2").val();
const optinString = buildOptions(dropDown1DropDown2Relation[selected]);
$('#dropdown3').html(optinString);
$('#dropdown3').show();
});
});
function buildOptions(arr) {
let optionString = `<option value=''>--Choose--</option>`;
for (const element of arr) {
optionString += `<option value='${element}'>${element}</option>`;
}
return optionString;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="product" name="faculty" required="">
</select>
<select id="dropdown2" name="dropdown2" required="">
</select>
<select id="dropdown3" name="dropdown3" required="">
</select>