扫码关注官方订阅号
填写QQ号那一栏,使用 <input type="number" /> 对于不支持 html5 的浏览器意义就不大了。 这个主要得用哪个方法来实现呢?
<input type="number" />
走同样的路,发现不同的人生
一个非常简单的jquery实现
$('input[type=number]').keydown(function (e) { if (e.keyCode < 48 || e.keyCode > 57) { return false; } });
但是这个东西治标不治本,如果用户用复制粘贴功能或者用鼠标操作,都可以绕过去,你还需要做一个实时检测,及时把不合法的输入去掉
var lastVal; setInterval(function () { var input = $('input[type=number]'), val = input.val(); if (lastVal != val) { input.val(val.replace(/[^\d]+/g, '')); lastVal = val; } }, 100);
个人以为不要用setTimeout,太耗性能了,绑定到keypress(或者keyup),以及blur事件,然后用正则判断当前字符串是否为全是数字,然后做相应的处理
可以用正则吧,判断输入的是否是数字,如果不是数字,就阻止事件。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
一个非常简单的jquery实现
但是这个东西治标不治本,如果用户用复制粘贴功能或者用鼠标操作,都可以绕过去,你还需要做一个实时检测,及时把不合法的输入去掉
个人以为不要用setTimeout,太耗性能了,绑定到keypress(或者keyup),以及blur事件,然后用正则判断当前字符串是否为全是数字,然后做相应的处理
可以用正则吧,判断输入的是否是数字,如果不是数字,就阻止事件。