input number如何禁止输入e和小数点等数学符号?

我在一个输入框需要输入纯数字,于是理所当然这么写

 <input type="number" >

然后发现是可以输入e和小数点等数学符号,查了下网上,修改后如下

 <input type="number" v-model="fromSize" onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))">

但是发现还是没效果,还是可以输入e以及小数点及数学符号,想问一下这个如何解决?

阅读 12.2k
5 个回答

移动端的话可以试试加上pattern,弹出的键盘都只有数字了,很好用。提交之前再正则匹配下,一般就够用了。

<input type="number" pattern="[0-9]*" placeholder="请输入数字">

web端的话除了onKeypress,onkeyup,你还要考虑复制粘贴之类的,不建议。还不如change/blur的时候再检测,提示或者回滚到上一个合法值

不太明白你的想法,你不要输入e,那你就监听fromSize,如果是e或者有小数点,就给个提示,并清空值就行了啊。

但是发现还是没效果,还是可以输入e以及小数点及数学符号,想问一下这个如何解决?

怎么输?这正则只能输数字。。。
http://jsfiddle.net/631807682...

但是这样做其实没什么用,因为你换个中文输入法onKeypress就废了。你都用了v-modelwatch一下不就完了?

写个@blur或者@change或者@input事件,把值parseInt()一下不就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题