当前位置: 代码迷 >> JavaScript >> 定制键盘/替换键
  详细解决方案

定制键盘/替换键

热度:96   发布时间:2023-06-05 09:26:50.0

嗨,我想更改键盘的行为,以便当用户在输入框上按“ a”键a = 97时,它会变为b 97 + 1。

我想要跨浏览器

当用户键入内容时, 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,但是您可以根据需要自定义它。

我在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));
});
  相关解决方案