Я пытаюсь изменить параметры выбора в соответствии с различными значениями выбора. Это мой код:
function createDatabaseSettingsForm() {
const formDatabaseSettings = $("#database_form");
var filterOptions = []
field_names = Object.keys(model_fields)
for (var index in field_names){
field = field_names[index];
if (field!= "id"){
filterOptions.push({text:field, value:field})
}
}
const showOnlySelect = createSelectButtonWithLable(
"Show Only",
"show_only_selector",
"query-form-class",
[]
);
const filterSelect = createSelectButtonWithLable(
"Filter Samles By",
"filter_samples_selector",
"query-form-class",
filterOptions,
() => {
filter_samples_selector_value = $("#filter_samples_selector")[0].value
show_only_selector = $("#show_only_selector")[0]
changeShowOnlySelect(model_fields[filter_samples_selector_value], show_only_selector);
}
);
formDatabaseSettings.append(filterSelect);
formDatabaseSettings.append(showOnlySelect);
}
function changeShowOnlySelect(options, select){
for (const optionIndex in options) {
select.append(
$(
`<option value=${options[optionIndex]}>${
options[optionIndex].text
}</option>`
)
);
}
}
function createSelectButtonWithLable(label_value, select_id, select_class, options, onSelect = null) {
const div = $("<div/>");
const label = $(`<label>${label_value}:\t</lable>`);
label.attr("for", select_id);
div.append(label);
const select = $("<select />");
select.attr("id", select_id);
select.attr("class", select_class);
for (const option in options) {
select.append(
$(
`<option value=${options[option].value}>${
options[option].text
}</option>`
)
);
}
if (onSelect != null){
//on change call on select
select.change(onSelect)
}
div.append(select);
return div;
}
Когда я изменяю filter_select, метод changeShowOnlySelect выполняется с правильными параметрами, но он не добавляет никаких опций. А также, когда я пытаюсь его отладить, отладчик cra sh, вот скриншот: