只允许使用javascript输入数字并允许复制和粘贴?

时间:2010-07-15 16:03:17

标签: javascript validation

我正在使用此功能仅允许文本输入中的数字。

$('input').bind('keydown', function(e) {

    var key = e.charCode || e.keyCode || 0;

    return (
         key == 8 ||
         key == 9 ||
         key == 46 ||
         (key >= 37 && key <= 40) ||
         (key >= 48 && key <= 57) ||
         (key >= 96 && key <= 105));
});

我如何才允许复制和粘贴?我已经尝试添加键码17进行控制,但它仍然不起作用。

对于组合键,您需要做些什么特别的事情吗?

由于

2 个答案:

答案 0 :(得分:5)

最好用以下的东西:

$('input').bind('keyup', function(e) {
  this.value = this.value.replace(/[^0-9]/g,'');
});

或者您也可以使用change事件。在这种情况下,无论数据如何进入字段,都将进行验证(并删除非数字输入)。     

答案 1 :(得分:-2)

记录按下的最后一个键码。由于您正在使用onkeydown,因此cmd-v将显示为具有键代码224(cmd)的事件,然后显示为具有键代码86(v)的事件。如果前一个键与cmd和后一个v匹配,则允许它通过。

(您可能也会检查Windows / Linux pasters的ctrl)