1 回答
TA贡献1895条经验 获得超7个赞
经过长时间搜索没有结果,这是我的解决方案:(
适用于 0-65535 | 0000-ffff)
var altCapture = null;
function keydown(event) {
var keyCode = event.keyCode;
if(keyCode == 18) altCapture = "";
if(altCapture != null && keyCode != 18)
altCapture += (keyCode - 96);
}
function keyup(event) {
if(event.keyCode == 18) {
event.target.value += String.fromCharCode(+altCapture);
}
}
function keypress(event) {
if(altCapture != null) {
event.preventDefault();
altCapture = null;
}
}
<input
onkeydown ="keydown (event)"
onkeyup ="keyup (event)"
onkeypress ="keypress(event)"
>
<input
onkeydown ="keydown (event)"
onkeyup ="keyup (event)"
onkeypress ="keypress(event)"
>
在所有按键按下后执行按键。
按下 18 (alt),通过将 altCapture 从 null 设置为 "" 开始捕获。
按下而不是 18 并捕获,将数字附加到 altCapture。
(默认情况下,不按下 18 且不捕获。)
向上键 18,从代码 altCapture 追加字符(+ 将字符串转换为数字)。
(按键不是 18,默认值。)
按键和捕获,防止默认值并将 altCapture 重置为 null。
(按键而不捕获,默认。)
添加回答
举报