问题描述
嗨,我想更改键盘的行为,以便当用户在输入框上按“ a”键a = 97时,它会变为b 97 + 1。
我想要跨浏览器
1楼
David Fullerton
1
2011-03-29 23:26:26
当用户键入内容时, jQuery.keypress
将为您提供事件,而String.fromCharCode
将为您提供字符+1。棘手的部分是处理选择。
为了获得选择,我使用了jQuery 插件,并确保它不会一直跳到最后,我使用了 。 这是最终代码:
$(function() {
$("#target").keypress(function (evt) {
if (evt.which >= 65 && evt.which <= 122) {
var sel = $(this).getSelection();
var val = $(this).val();
var out = val.substring(0, sel.start) + String.fromCharCode(evt.which+1) + val.substring(sel.end, val.length);
$(this).val(out);
$(this).selectRange(sel.start + 1, sel.start + 1);
return false;
}
});
});
我将其限制为a-zA-Z,但是您可以根据需要自定义它。
2楼
clmarquart
0
2011-03-29 23:34:45
我在Firefox和Chrome中测试了以下内容。 使用“ keypress”允许使用其他键,而使用charCode允许使用大小写字母:
document.getElementById("textbox").addEventListener("keypress",function(event){
event.preventDefault();
this.value+=(String.fromCharCode(event.charCode+1))
},false);
我刚刚看到了jQuery标签,所以您也可以这样做:
$("#textbox").bind("keypress",function(event){
event.preventDefault();
this.value+=(String.fromCharCode(event.charCode+1));
});