преобразовать значения нажатой клавиши в английские значения - PullRequest
0 голосов
/ 01 декабря 2009

У меня есть такой ввод

<input id="guestCard" name="guestCard" onkeypress="transform(event)" type="text" value="" />

и я хочу преобразовать нажатую на клавиатуре клавишу независимо от того, какие языковые настройки установлены на английские символы. Например. когда я нажимаю на чешскую клавиатуру + (с кодом 43), я хочу получить 1 (с кодом 49). Есть ли какой-нибудь стандартный способ сделать это? Как будет выглядеть функция преобразования?

В качестве альтернативы мне нужна та же функциональность, но с использованием ajax (на asp.net mvc). Есть идеи?

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 01 декабря 2009

Насколько мне известно, JavaScript не поддерживает локали - поэтому вам нужно каким-то образом обнаружить или заставить пользователя выбрать соответствующее преобразование преобразования (в этом случае, возможно, переключатель для чешского языка в качестве источника и US ASCII для пункт назначения). После этого ваша функция может выглядеть примерно так:

function transform(event) {
  var code = (event.charCode) ? event.charCode : event.keyCode; // cross-browser happy
  switch (code) {
    case 43 : return "1";
  }
}

Есть отличная тестовая страница, чтобы увидеть, как свойства keyCode / charCode и события onKeyDown / Press / Up ведут себя в разных браузерах. http://asquare.net/javascript/tests/KeyCode.html

0 голосов
/ 01 декабря 2009

Trimack -

Я думаю, что вы используете неправильное событие. Вам нужно onkeydown и использовать свойство keyCode event .

0 голосов
/ 01 декабря 2009

Я сомневаюсь, что есть один, кроме как создать его, создать ассоциативный массив, добавить немного JS в текстовое поле, которое сохраняет два значения в массиве, а затем нажать каждую клавишу на клавиатуре. После этого вы можете куда-нибудь вывести массив и использовать его как константу в своем коде.

Но имейте в виду: почти у всех пользователей будут проблемы, когда они не увидят на экране персонажа, который они набрали на клавиатуре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...