【发布时间】:2013-09-12 21:12:06
【问题描述】:
我有以下代码只允许输入数字(为简洁起见,删除了其他逻辑)。
$("input").keydown(function (event) {
var key = event.keyCode;
if ((key < 48 || key > 57) && (key < 96 || key > 105) || event.shiftKey) {
event.preventDefault();
}
});
此代码在英文键盘上运行良好,但在法文键盘上使用 shift 键,因此逻辑在那里失败。如果我删除班次,英文键盘中的逻辑会失败。
有没有一种方法可以检测在任何类型的键盘上都可以使用的 keydown 事件中按下的数字?
谢谢
【问题讨论】:
-
或许你能找出keyboard/locale they are using是什么类型的?
-
可能有,只需 console.log 键并找出要排除/包含的 keyCode。
-
如果您要这样验证输入,请务必抓住使用鼠标复制/粘贴值的情况
-
或者也许使用
fromCharCode()来查看键码是否为数字,或者使用HTML5 数字输入? -
@adeneo 是的。不要检查键,而是检查它附加的值。
标签: javascript jquery