1

无论键盘和操作系统的语言和文化如何,/(正斜杠)符号的 javascript 键码是什么?在英文键盘中,正斜杠位于与数字键分开的键中,它的键码是 191。但是在西班牙语键盘中,该字符与数字 7 在同一个键中并输入它我必须做 SHIFT + 7,但该组合不会产生键码 191!

我已经尝试过if (event.shiftKey && event.keyCode == 55) {}55 是字符 7 的键码并且它可以工作,但是使用英文键盘时,if (event.shiftKey && event.keyCode == 55) {}条件允许我输入 & (与号)符号。

我的网页中有一个文本框,我只想允许用户输入数字和正斜杠,而不管他们使用的键盘或操作系统是什么语言,也不管他们只需要按一个键输入正斜杠还是他们必须组合 SHIFT + 数字键或其他类型的组合。我怎样才能做到这一点?

4

2 回答 2

0

作为防止按键的替代方法:

<textarea oninput="validate(this,/([^\/\d])/g)" ></textarea>
<script>
function validate(inp,reg)
{
    //([^\/\d]) translates to:
    //"remove everything that is not a / or a number"
    var s = inp.selectionStart;
    inp.value = inp.value.replace(reg,"");
    inp.selectionStart = s;inp.selectionEnd = s;//reset caret position
}
</script>
于 2013-05-31T02:47:00.453 回答
0

您可以通过听 keypress 而不是 keydown 来实现这一点,这将为您提供一个包含实际按下的键和相应的 ASCII 代码的事件对象。

// Vanilla JavaScript
document.body.addEventListener('keypress', function(event) { 
  console.log(event);     
});

// jQuery
$('body').on('keypress', function (event) {
  console.log(event);
};

在此处输入图像描述

于 2017-01-12T10:10:01.873 回答