пользовательская клавиатура / клавиши замены - PullRequest
0 голосов
/ 30 марта 2011

Привет! Я хочу изменить поведение своей клавиатуры, поэтому, когда пользователь в поле ввода нажимает клавишу 'a' a = 97, она меняется на b 97 + 1.

Я хочу это для кросс-браузерного

Ответы [ 2 ]

1 голос
/ 30 марта 2011

jQuery.keypress получит вам событие, когда пользователь что-то наберет, а String.fromCharCode даст вам символ + 1. Сложная часть касается выбора.

Чтобы получить выделение, я использовал плагин jQuery field selection , и чтобы убедиться, что он не переходит обратно в конец, я использовал этот ответ на другой вопрос . Вот окончательный код:

$(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;
        }
    });
});

jsFiddle

Я ограничил его a-zA-Z, но вы можете настроить его так, как хотите.

0 голосов
/ 30 марта 2011

Я протестировал следующее в Firefox и Chrome.Использование «нажатия клавиш» позволяет использовать другие клавиши, а использование 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));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...