只允许使用JavaScript输入数字并允许复制和粘贴?
我正在使用此功能只允许在文本输入中的数字。只允许使用JavaScript输入数字并允许复制和粘贴?
$('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,但它仍然不起作用。
对于组合键有什么特别的要求吗?
谢谢
保持按下最后一个键码的记录。由于您使用的是onkeydown
,因此cmd-v会显示为键码为224(cmd)的事件,然后是键码为86(v)的事件。如果前面的键与cmd和后面的v匹配,则允许它通过。
(你可能会检查CTRL适用于Windows/Linux的pasters以及)
比粘贴更多的方法:例如从上下文和编辑菜单。还有拖动。 – 2010-07-16 08:19:45
你喜欢的东西更好:
$('input').bind('keyup', function(e) {
this.value = this.value.replace(/[^0-9]/g,'');
});
或者你也可以使用change
事件。在这种情况下,不管数据如何进入字段,它都将被验证(并且移除非数字输入)。
+1,以简化和使用'change'事件的简单性。 – 2010-07-16 08:20:36
是不是第一行是一个jQuery选择器?这不应该至少有一个jQuery标签吗? – Adam 2010-07-15 16:27:05
或者是为jQuery特有的问题保留的标记? (只是好奇) – Adam 2010-07-15 16:28:28
@ advs89再想一想(不要懒得读完整的问题不只是第一行......) – galambalazs 2010-07-15 16:28:48