是否可以实现一个input
允许只在内部键入数字而无需手动处理event.target.value
?
在React中,可以定义value
属性,然后输入更改将基本上绑定到该值(无法在不value
更改的情况下修改它).见例子.它没有任何努力就可以正常工作.
在Angular 2中,可以定义[value]
,但它只是初始设置值,然后input
不会阻止修改.
我正在玩,ngModel
并[value] / (input)
看到例子.
但在这两个实现中都存在一个基本问题:
如何做到这一点(从第一眼看)组件,无需手动处理event.target.value
?...
更新我不是在寻找原生HTML5 input[number]
元素.这里输入的数字仅用于示例 - 当我需要限制输入文本时,可能会有更多任务.
此外,input[number]
1)不限制我打字10ddd
和2)(不太重要)包含我不需要的箭头.
这里的问题是阻止用户输入超出限制值的内容,而不是允许输入任何内容并在之后验证它
我一直在努力了解jQuery keypress,keydown,keyup和input事件.但我发现它们很混乱.有人可以指出确切的区别吗?此外,我想知道当用户粘贴一段文本时,所有这些都会被触发.
谢谢
keypress
不推荐使用javascript事件:https :
//developer.mozilla.org/en-US/docs/Web/API/Document/keypress_event
有些人建议完全依赖keydown
事件,例如:
Keydown
是我们唯一需要的键盘事件
https://www.mutuallyhuman.com/blog/2018/03/27/keydown-is-the-only-keyboard-event-我们需要/
问题是keydown
和keypress
不是同义词。至关重要的是,它们在许多/大多数情况下不会返回相同的字符。Keydown
表示按下了键盘上的哪个键,而keypress
表示用户实际键入的字符。
在英语中,区分大小写很重要:
letter = String.fromCharCode(event.which);
Run Code Online (Sandbox Code Playgroud)
当按下键盘上的“a”键时,字母是“a”加keypress
,但它是“A”加keydown
。
JCK 语言的情况变得更加复杂,因为keypress
接收正确的国际键盘布局字符,而不是keydown
将所有内容转换为单字节字符。
现在在 IME 组合过程中会触发 keydown 和 keyup 事件:https :
//www.fxsitecompat.com/en-CA/docs/2018/keydown-and-keyup-events-are-now-fired-during-ime-composition/
那么,随着keypress
被弃用,当我们关心用户打算输入的字符时,我们应该使用什么,考虑大小写、非 ASCII 字符和多字节字符?
相关问题和参考:
keyup 事件总是返回大写字母
=> 答案推荐使用keypress
.
String.fromCharCode 不适用于 keydown 事件
=> 答案建议使用keypress
.
keypress 和 keydown 上的 String.fromCharCode 返回错误的字符
=> 答案指出keypress
和keydown
事件不可互换。
我想在输入时提交表单,而不在 Antd 表单中添加按钮。在 React 中有什么办法可以做到这一点吗?
我考虑了隐藏按钮的解决方法,但认为这不是最好的方法。