Выберите размер не обновляется после динамического добавления параметров - PullRequest
0 голосов
/ 28 января 2019

У меня есть супер простой код, который динамически добавляет опции к элементу Select при нажатии.(Параметры отправляются с сервера)

$document.on('click', 'select', function (this: HTMLSelectElement) {
    const slct = $(this);
    const isdict = slct.data<string>('dictionaryctrlr');
    if (!isdict) { return; }
    let querysrch = slct.data<string>('querysrch');
    querysrch = querysrch ? '&' + querysrch : '';
    const postData = slct.closest('.pseudoRec').find(':input').serializeArray();
    const posturl = getActionUrl2(isdict, 'GetSelectOptions', undefined, 'SelectFieldName=' + leftCutTill($(this).data<string>('selectfieldname')!, '.') + querysrch);
    $.ajax({
        url: posturl,
        data: postData,
        success: (data: any[] | undefined) => {
            if (!data) { return; }
            slct.find('option').filter(function (this: HTMLOptionElement) { return this.value && !this.selected; }).remove();
            for (let x of data) {
                var opt = new Option(x.Value, x.Key);
                this.add(opt);
            }
        }
    });
});

Проблема в том, что, даже если параметры добавляются, пользователь не видит их в открытом списке, в раскрывающемся списке по-прежнему отображается крошечный / пустой.

Только когда он повторно щелкает, он открывается со всеми отображаемыми параметрами.

Есть ли способ добавить элементы в какое-то «предэкспонирующее» событие?или просто способ сказать выпадающему меню, чтобы изменить его размер?или какие-то другие идеи?

Спасибо!

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