当前位置: > > > HTML5 - 解决数值输入框可以输入字母E的问题(input type="number" )

HTML5 - 解决数值输入框可以输入字母E的问题(input type="number" )

1,问题描述

(1)如果页面需要输入常规数值时,我们通常会使用 number 类型的控件。这样浏览器会自动忽略非数值字符。就是说只能输入数字进去。
<input type="number"/>

(2)但是我们发现字母 e 仍然是可以输入的,无论大写还是小写(当然除了 e 以外的其它字母确实无法输入):

2,问题原因 

这是由于 e 在数学上代表 2.71828,因此它也是一个数字,所以允许输入。 

3,解决办法

(1)如果我们想让 number 控件只能输入 0-9 这样纯数字的话,可以在 onkeypress 属性上增加个判断(只接收 0-9 的按键行为)。
<input type="number" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"/>

(2)如果不需要右侧的上下小箭头(步进器),只要实现一个 input 数字输入框,做法也是一样的。
<input onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"/>
评论0