Удаление нескольких вариантов выбора и замена на новые - PullRequest
0 голосов
/ 15 марта 2020

У меня есть тег выбора, например:

<span id="reportProjectSelector">
    <span>Reporting Project:</span>
    <select id="reportProjectDropdown" onChange="loadChartWithData();" multiple="multiple"></select>
</span>

и

$(function() {
    $('#reportProjectDropdown_${widgetId}').multiselect({
        includeSelectAllOption: true
    });
});

Здесь у меня есть несколько выпадающих цепочек других выпадающих списков, которые являются родителями «reportProjectDropdown». Для простоты давайте рассмотрим только один «проект». Итак, теперь у нас есть «Проекты», при смене которых срабатывает фильтр «Отчетные проекты». В настоящее время фильтр проекта отчетов не изменяет и не заменяет новые значения (в основном это нулевые или нулевые значения, которые в раскрывающемся списке заменяются на значения, подобные «Нет проектов отчетности»)

Я пытался удалить предыдущие значения, но с не повезло. Вот функция, которая, я ожидаю, выполнит эту работу.

function setDependentProjects (data, widgetId) {
    $('#reportProjectDropdown').find('option').remove().end();

    if(jQuery.isEmptyObject(data)) {
        let newOption = new Option("No Projects", 0, true, true);
        $('#reportProjectDropdown').append(newOption);
    } else {
        let selected = true;
        for(let key in data) {
            selected = "${defaultDependentProject}" == data[key];
            let newOption = new Option(data[key], key, selected, selected);
            $('#reportProjectDropdown').append(newOption);
            selected = false;
        }
    }

    loadChartWithData_${widgetId}(); //renders data as per the previous filters
}

Я что-то упустил или неправильно удаляю элементы?

1 Ответ

0 голосов
/ 15 марта 2020

Вам необходимо обновлять sh экземпляр jQuery множественного выбора после каждого изменения. Вы можете сделать это, используя $('#reportProjectDropdown').multiSelect('refresh');

См. Также документацию: jQuery множественный выбор

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