I have two dropdown menus as follows:
<form id="dynamicForm">
<select id="A">
</select>
<select id="B">
</select>
</form>
And I have a dictionary object where the keys are the options for A
and the values, B
are arrays corresponding to each element in A
, as follows:
var diction = {
A1: ["B1", "B2", "B3"],
A2: ["B4", "B5", "B6"]
}
How can I dynamically populate the menu B based on what the user selects in menu A?
Bind a change event handler and populate second select tag based on selected value.
var diction = {
A1: ["B1", "B2", "B3"],
A2: ["B4", "B5", "B6"]
}
// bind change event handler
$('#A').change(function() {
// get the second dropdown
$('#B').html(
// get array by the selected value
diction[this.value]
// iterate and generate options
.map(function(v) {
// generate options with the array element
return $('<option/>', {
value: v,
text: v
})
})
)
// trigger change event to generate second select tag initially
}).change()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="dynamicForm">
<select id="A">
<option value="A1">A1</option>
<option value="A2">A2</option>
</select>
<select id="B">
</select>
</form>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With