Добавить параметры в селектор - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь изменить параметры выбора в соответствии с различными значениями выбора. Это мой код:

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, вот скриншот:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...