我有以下html5输入元素:
<input type="number">
为什么这个输入允许在输入字段中输入字符“e”?无法输入其他字母字符(如预期的那样)
使用chrome v. 44.0.2403.107
下面的例子来看看我的意思。
= >“当家”型输入<
我有以下html5输入元素:
<input type="number">
为什么这个输入允许在输入字段中输入字符“e”?无法输入其他字母字符(如预期的那样)
使用chrome v. 44.0.2403.107
下面的例子来看看我的意思。
= >“当家”型输入<
当前回答
我们可以像下面这样简单
<input type="number" onkeydown="javascript:返回事件。keyCode == 69 ?/> . False: true
更新后的答案
我们可以让它更简单,就像@88 MPG建议的那样
<输入类型=“编号”=“回归事件”。键盘代码!
其他回答
强制使用仅由数字组成的数字的最佳方法:
<input type="number" onkeydown="javascript: return ['Backspace','Delete','ArrowLeft','ArrowRight'].includes(event.code) ?isNaN(Number(event.key)) && event.code!= =‘空间’" / >
这避免了'e', '-', '+', '。“…所有不是数字的字符!
若要只允许数字键,请使用数字函数转换为数字。如果不是数字,则结果为NaN:
isNaN(当家(基)事件。
但接受退格,删除,左箭头,右箭头:
[个’,‘删除’‘ArrowLeft’,‘ArrowRight includes(事件。代码)
这是为允许空格的Firefox设置的:
event.code != =“空间”
要隐藏字母e和负号,可以这样做:
onkeydown="return event.keyCode !== 69 && event.keyCode !== 189"
E代表指数,用来缩短长数字。因为输入是数学输入而指数在数学中是用来缩短数字的,所以这里有个E。
显示如下:4e。
链接:1和2
简单而标准的解决方案:在Angular/ Js/ Ts中,你可以使用正则表达式来限制任何输入键。
HTML: <input type=“text” name=“input1” (keypress)=“numericOnly($event)” />
TS:
numericPattern = /^[0-9]*$/;
numericOnly(event){
return this.numericPattern.test(event.key);
}
HTML输入数字类型允许“e/ e”,因为“e”代表指数,这是一个数字符号。
例200000也可以写成2e5。我希望这能帮到你,谢谢你的问题。