相关疑难解决方法(0)

限制文本输入值的正确方法(例如,仅限数字)

是否可以实现一个input允许只在内部键入数字而无需手动处理event.target.value

在React中,可以定义value属性,然后输入更改将基本上绑定到该值(无法在不value更改的情况下修改它).见例子.它没有任何努力就可以正常工作.

在Angular 2中,可以定义[value],但它只是初始设置值,然后input不会阻止修改.

我正在玩,ngModel[value] / (input)看到例子.

但在这两个实现中都存在一个基本问题:

  1. 键入10时(模型值为10;输入值为10) - 正确
  2. 当你输入10d之后(模型值为10 - 未修改,所有非数字都被删除;输入值为10d) - 不正确,因为模型值与之前相同
  3. 键入10d3时 - (模型值为103;输入值为103) - 正确

如何做到这一点(从第一眼看)组件,无需手动处理event.target.value?...

更新我不是在寻找原生HTML5 input[number]元素.这里输入的数字仅用于示例 - 当我需要限制输入文本时,可能会有更多任务.

此外,input[number]1)不限制我打字10ddd和2)(不太重要)包含我不需要的箭头.

这里的问题是阻止用户输入超出限制值的内容,而不是允许输入任何内容在之后验证

angular

33
推荐指数
7
解决办法
10万
查看次数

keyup,keydown,keypress和input事件之间有什么区别?

我一直在努力了解jQuery keypress,keydown,keyup和input事件.但我发现它们很混乱.有人可以指出确切的区别吗?此外,我想知道当用户粘贴一段文本时,所有这些都会被触发.
谢谢

jquery input javascript-events

23
推荐指数
1
解决办法
3万
查看次数

按键被弃用,如何获取用户输入的字符?

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-我们需要/

问题是keydownkeypress不是同义词。至关重要的是,它们在许多/大多数情况下不会返回相同的字符。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 返回错误的字符 => 答案指出keypresskeydown事件不可互换。

替换已弃用的 `keypress` DOM …

javascript keycode keypress keydown

6
推荐指数
0
解决办法
2048
查看次数

如何在没有提交按钮的情况下在输入时提交表单?

我想在输入时提交表单,而不在 Antd 表单中添加按钮。在 React 中有什么办法可以做到这一点吗?

我考虑了隐藏按钮的解决方法,但认为这不是最好的方法。

javascript reactjs antd

5
推荐指数
1
解决办法
2万
查看次数