I'd need to programmatically fill a select dropdown element with the values of an array. I've read plenty of similar questions but could not find an answer solving my issue.
I have the following
const data = {
parameters:[{"name":"myparam","type":"enum","values":["5","10","15"]}
]
}
$.each(data.parameters, function(i, parameter) {
// parameter = {"name":myparam","type":"enum","values":["5","10","15"]}
let param_form_id = parameter.name + "_id";
let parameter_enum_array = new Array();
// push all values to parameter_enum_array[]
$.each(parameter.values, function(j, enumvalue) {
parameter_enum_array.push(enumvalue);
});
let select_id = parameter.name + "_sel_id";
// create form with empty select element
$('<form>', {
"id": param_form_id,
"html": '<div class="input_field s12 l6"> <select id="' + select_id + '"> </select> </div> <div class="col s12 l6"><button class="btn blue" type="submit"> submit</button> </div>'
}).appendTo(`.params_container`);
// add options to select element
var option = '';
for (var i = 0; i < parameter_enum_array.length; i++) {
$('<option/>').val(parameter_enum_array[i]).html(parameter_enum_array[i]).appendTo(select_id);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="params_container">
</div>
The resulting html code
<form id=myparam_id>
<div class="input_field s12 l6">
<select id="myparam_sel_id"> </select>
</div>
<div class="col s12 l6">
<button class="btn blue" type="submit"> submit</button>
</div>
</form>
The issue is that the is empty.
What am I doing wrong?