在搜索文本输入中仅允许数字的方法时,通常会得到类似的内容:
function keyPressEvent (e) {
var keyCode = e.which || e.keyCode;
if (keyCode < 48 || keyCode > 57) {
return false;
}
}
但问题是,这使得仅执行命令的键不起作用。从退格和删除开始,但即使是ctrl + a或f5。我知道我可以为所有这些创建例外,但我认为这将是一段时间。有什么简单的方法可以做我想要的吗?是否有类似检测将添加到文本中的字符,而不是按下的键?
答案 0 :(得分:2)
我实际上采用的方法是让用户键入/输入他们想要的任何内容,并手动强制该值为数字。像这样的东西(这是一个jQuery项目,但这个想法很容易被jQuery重用)。
fieldJq.bind('click keyup change blur focus', function (ev) {
var curVal = $(this).val();
$(this).val(curVal.replace(/[^0-9\.]/g, ''));
});
这里的想法是我让他们把任何他们想要的东西放入其中(因此没有机会打破复制/粘贴等控制命令)但是在更改任何值之后我删除任何不是数字的东西或小数点。此时不是100%防火(10.0.0无效),但它最初确实至少接近。如果您不需要浮点支持并且可以从正则表达式中删除\.
,那么您将获得强制数字输入。