美文网首页
使用ant的select的onInputKeyDown

使用ant的select的onInputKeyDown

作者: Shiki_思清 | 来源:发表于2020-11-26 11:09 被阅读0次

    前提

    希望输入重复的tag并且回车时,外围框变红

    image.png

    遇到困难

    发现在禁用下拉时,当输入已有tag时,内部自动禁止生成tag,直接导致onchange事件失效

    解决

    const onInputKeyDown = (e: { key: string; target: { value: string } }) => {
            const tempVal = e.target.value;
            if (e.key == 'Enter') {
                const isRepeat = keywords.indexOf(tempVal);
                isRepeat > -1 ? setRedBorder(true) : setRedBorder(false);
            }
        };
    <Select
        className={cls(styles.keywordsSelector, { [styles.redBorder]: redBorder })}
        dropdownStyle={{ display: 'none' }}
        mode="tags"
        showArrow={false}
        value={keywords}
        getPopupContainer={((triggerNode: any) => triggerNode.parentElement) as any}
        onChange={(e: string[], option) => onChangeKeywords(e)}
        onInputKeyDown={onInputKeyDown}
    />
    

    使用onInputKeyDown方法,e的keyCode是undefined的,只有e的key可以返回,并且是直接返回键盘名称,而不是数字序号

    比如敲击回车,即返回 ‘Enter’

    总结

    webAPI上的 code 是一直是undefined的, 而key 确是好用的

    相关文章

      网友评论

          本文标题:使用ant的select的onInputKeyDown

          本文链接:https://www.haomeiwen.com/subject/jatwiktx.html