我有以上脚本,请查看Fiddle或以下。
<script type="text/javascript">
function check(e){
var text = e.keyCode ? e.keyCode : e.charCode;
switch(text){
case 81:
text = 'መ';
break;
case 87:
text = 'ሙ';
break;
case 69:
text = 'ሚ';
break;
case 82:
text = 'ማ';
break;
case 84:
text = 'ሜ';
break;
case 89:
text = 'ም';
break;
case 85:
text = 'ሞ';
break;
}
if(text == 8){
var str = document.getElementById("out").innerHTML;
var foo = str.substring(0, str.length -1);
document.getElementById("out").innerHTML = foo;
}else {
document.getElementById("out").innerHTML += text;
}
}
</script>
<input type='text' onkeyup='check(event);' id='in' />
<div id='out' ></div>
只更改了一些 qwerty
字母,将其转换为其他的 Unicode 码。也就是说,每个字母都被转换为另一个字母,但问题在于有些字母只能通过两个键的组合来创建,无论是同时按下还是分别按下。
- 当你按下 m 然后迅速按下 o 时,它应该生成 x;
- 或者当你按下 shift + p 时,它应该生成 y
这里的问题在于代码只能识别每次敲击一个字母。我已经尝试使用:
if(text == 77+79){ // this is for m + o
text 'x';
}
甚至是shift+p,应该输出z也是可以的。我尝试将上述论点内置,但它并没有起作用。
m
键,然后按下o
键 =>x
)与检测按键组合(同时按下shift
+p
)是两个不同的问题。如何实现这两个功能是完全不同的。后者似乎已经有了答案,正如 @JDeveloper 所指出的那样;你应该单独询问前者(也许已经有了答案)。 - doppelgreener