繁体   English   中英

如何只允许文本输入中的数字但允许带有 JavaScript 的命令?

[英]How to allow only numbers on a text input but allow commands with JavaScript?

在寻找只允许文本输入数字的方法时,您通常会得到类似以下内容的信息:

function keyPressEvent (e) {
    var keyCode = e.which || e.keyCode;
    if (keyCode < 48 || keyCode > 57) {
        return false;
    }
}

但问题是,这使得只执行命令的键不起作用。 backspacedelete开始,甚至是ctrl + af5 我知道我可以为所有这些创建例外,但我认为这将是浪费时间。 有什么简单的方法可以做我想做的事吗? 有没有像检测将添加到文本中的字符而不是按下的键?

我实际上采用了一种方法,让用户键入/输入他们想要的任何内容,然后手动将值强制为数字。 像这样的东西(它是一个 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 不是无效的)但它至少在最初确实接近。 如果您不需要浮点支持并且可以删除\. 从正则表达式你有一个强制数字输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM