【发布时间】:2021-06-15 07:43:05
【问题描述】:
我有一个输入,如果输入类型是“文本”,我可以过滤任何字母。
另外,我正在收听onKeyUp 事件来增加/减少输入值。
但是这种方法有两个问题:
-
文本输入不会在右侧显示向上/向下按钮。
-
当用户按下“向上箭头”按钮时,光标会前后“跳跃”(到输入的开头,然后跳回到输入的结尾)。
当我尝试为数字输入实现相同的逻辑时,当用户键入“e”时,来自它的值是空的。 EG:'12e' 将被标识为“”(空字符串)。这是可以接受的,但我希望用户能够通过选择范围并按下“删除”按钮来删除他/她输入的任何值。
这是我为演示该问题而创建的代码示例:
https://codesandbox.io/s/peaceful-mcclintock-gd74y
更新:
根据 Martin Wahlberg 的回答,我们应该监听 onKeyDown 事件。 这是过滤“e”、“-”和“+”的工作版本。可能对遇到同样问题的人有用。
https://codesandbox.io/s/throbbing-fast-5u2qq
感谢您的帮助!
【问题讨论】:
标签: javascript reactjs validation input numbers