Im having a trouble on how can I populate data to my third dropdown.
I have three dropdown, firstly when I click my first dropdown the second dropdown will populate list based on the value of my first dropdown and below my code it works fine.
The problem is, I want to populate list to my third dropdown when I click second dropdown but it didn't show anything.
var mealsByCategory =
{ A: [ 'San Francisco', 'Manila', 'Kirishima' ]
, B: [ 'b', 'bb', 'bbb', 'bbbb' ]
, C: [ 'c', 'ccc', 'cccc', 'ccccc', 'cccccc' ]
}
var Mprovinces =
{ A: [ 'San Francisco', 'Manila', 'Kirishima' ]
, B: [ 'b', 'bb', 'bbb', 'bbbb' ]
, C: [ 'c', 'ccc', 'cccc', 'ccccc', 'cccccc' ]
}
function changemeal(value) {
$('#category').prop('disabled', false);
if (value.length == 0) document.getElementById("category").innerHTML = "<option></option>";
else {
var catOptions = "";
for (categoryId in mealsByCategory[value]) {
catOptions += "<option>" + mealsByCategory[value][categoryId] + "</option>";
}
document.getElementById("category").innerHTML = catOptions;
}
}
function changecat(value) {
$('#provinces').prop('disabled', false);
if (value.length == 0) document.getElementById("provinces").innerHTML = "<option></option>";
else {
var catOptions1 = "";
for (categoryId in Mprovinces[value]) {
catOptions1 += "<option>" + Mprovinces[value][categoryId] + "</option>";
}
document.getElementById("provinces").innerHTML = catOptions1;
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select onChange="changemeal(this.value);">
<option value="" disabled selected>Select Province</option>
<option value="A">Usa</option>
<option value="B">Japan</option>
<option value="C">China</option>
</select>
<select name="category" id="category" onChange="changecat(this.value);" disabled>
<option disabled selected>Select</option>
<option value="A">Usa</option>
<option value="B">Japan</option>
<option value="C">China</option>
</select>
<select name="provinces" id="provinces" disabled>
<option value="" disabled selected>Select</option>
</select>