为什么多重选择不能在输入键盘上更新?

嗨,我正在尝试根据搜索字符串更新multiselect,但在keyup上,UI中的值未更新。 多重选择位于模式对话框中,可通过单击按钮打开。加载时,搜索框和多重选择均可用。用户将输入文本和onkeyup事件,我要过滤多选并仅显示匹配的项目。

我的代码MultiSelect.cshtml

    <input type="text" placeholder="Search..." class="c-multi-select-search" onkeyup="MultiSelect.filterMultiSelectunselected(this)" />
    <select size="12" class="c-multi-select__unselected" multiple="multiple"></select>

MultiSelect.ts

function openForSibling(thisButton) {
        $unsel = $dialogContent.find(".c-multi-select__unselected");
        $unsel.find('option').remove();

        for (var i = 0; i < optsArr.length; i += 2) {
            if (selectedIds.indexOf(parseInt(optsArr[i + 1])) < 0) {
                $unsel.append(`<option value="${optsArr[i + 1]}">${optsArr[i]}</option>`);
            }
        }   
}
export function filterMultiSelectunselected(search) {
    $unsel = $dialogContent.find(".c-multi-select__unselected");
    $unsel.find('option').remove();

    for (var i = 0; i < optsArr.length; i += 2) {
        if (selectedIds.indexOf(parseInt(optsArr[i + 1])) < 0 && 
         optsArr[i].toLowerCase().indexOf(search.value.toLowerCase()) >= 0) {
        $unsel.append(`<option value="${optsArr[i + 1]}">${optsArr[i]}</option>`);
           }
       }    
    }

openForSiblingfilterMultiSelectunselected中的代码都执行相同的操作,但后者不会更新UI中的值。当我在开发人员工具中调试时,$unsel具有基于搜索字符串的正确值,但无法查看为什么未在UI中对其进行更新。

请帮助我解决此问题,因为我看不到这里出了什么问题。该代码是重复的,但请忽略,它是即将被替换/重写的旧代码。

是否应刷新多重选择? 谢谢

ldg2000 回答:为什么多重选择不能在输入键盘上更新?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3001038.html

大家都在问