У меня есть супер простой код, который динамически добавляет опции к элементу 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);
}
}
});
});
Проблема в том, что, даже если параметры добавляются, пользователь не видит их в открытом списке, в раскрывающемся списке по-прежнему отображается крошечный / пустой.
Только когда он повторно щелкает, он открывается со всеми отображаемыми параметрами.
Есть ли способ добавить элементы в какое-то «предэкспонирующее» событие?или просто способ сказать выпадающему меню, чтобы изменить его размер?или какие-то другие идеи?
Спасибо!