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

发布于 2022-09-11 15:32:56 字数 315 浏览 30 评论 0

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

 <input type="number" >

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

情释 2022-09-18 15:32:56

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

梅倚清风 2022-09-18 15:32:56

oninput = "value=value.replace(/ [^d]/g,'')"

夏日浅笑〃 2022-09-18 15:32:56

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

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

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

樱娆 2022-09-18 15:32:56

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

橘寄 2022-09-18 15:32:56

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

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文