我有以下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建议的那样
<输入类型=“编号”=“回归事件”。键盘代码!
其他回答
要隐藏字母e和负号,可以这样做:
onkeydown="return event.keyCode !== 69 && event.keyCode !== 189"
使用angular,你可以限制输入e,+,-, e
<input type="number" (keypress)="numericOnly($event)"/>
numericOnly(event): boolean { // restrict e,+,-,E characters in input type number
debugger
const charCode = (event.which) ? event.which : event.keyCode;
if (charCode == 101 || charCode == 69 || charCode == 45 || charCode == 43) {
return false;
}
return true;
}
如果你按下一个键,它的计算机语言相当于69,它就不会输入
<input
type="number"
onkeydown="return event.keyCode !== 69"
/>
上述解决方案只适用于普通html。 对于reactJS,我建议你这样做
<input type="number" onKeyDown={(e) =>["e", "E", "+", "-"].includes(e.key) && e.preventDefault()} >
一个简单的解决方案,排除除整数
<输入 类型=“数字” min=“1” 步骤=“1” onkeypress=“return event.keyCode === 8 ||事件.字符代码 >= 48 &&; 事件.字符代码 <= 57“>
此解决方案不防止复制和粘贴(包括字母“e”)。