我有这样的输入
<input id="guestCard" name="guestCard" onkeypress="transform(event)" type="text" value="" />
我想转换键盘上按下的键,无论英语字符是哪种语言设置。例如。当我按下捷克键盘+(键码43)时,我想得到1(键码为49)。 有没有一些标准的方法来做到这一点?函数变换将如何变换?
或者我想要相同的功能,但使用ajax(在asp.net mvc上)。那里有什么想法吗?
提前致谢。
答案 0 :(得分:1)
据我所知,JavaScript不能识别区域设置 - 因此您需要以某种方式检测或让用户选择适当的转换映射(在这种情况下,可能是捷克的单选按钮作为源和US ASCII为目的地)。一旦处理完毕,您的功能可能是:
function transform(event) {
var code = (event.charCode) ? event.charCode : event.keyCode; // cross-browser happy
switch (code) {
case 43 : return "1";
}
}
有一个很棒的测试页面可以看到keyCode / charCode属性和onKeyDown / Press / Up事件在不同浏览器中的行为方式。 http://asquare.net/javascript/tests/KeyCode.html
答案 1 :(得分:0)
我怀疑有一个但是要创建它,创建一个关联数组,将一些JS添加到文本字段,该字段将两个值保存在数组中,然后按键盘上的每个键。之后,您可以将数组转储到某处,并将其用作代码中的常量。
但要注意:几乎所有用户在他们没有在屏幕上输入他们在键盘上输入的字符时会遇到问题。
答案 2 :(得分:0)
Trimack -
我认为您使用的是错误的事件。您需要 onkeydown ,并使用事件的 keyCode 属性。