Китайские иероглифы и событие onkeypress

Использование Internet Explorer в Windows У меня есть событие onkeypress, обнаруживающее текст, введенный в текстовое поле. Однако при вводе китайских символов это событие не срабатывает. Кто-нибудь сталкивался с этим или имел предложения по работе над этим?

Ответ 1

Основываясь на этом JSFiddle, кажется, что событие keydown не срабатывает, как можно было ожидать. Я бы использовал событие keyup (хотя вы все равно получите частично введенные символы).

Из моего эксперимента я получил:

  • Событие для "ni" вместо 你
  • Событие "你 ha"
  • Событие для 你 哈 (так как оповещение убило мой вход для завершения "hao" )

В принципе, Windows и IE не очень хорошо играют с символьным вводом. Я бы предложил использовать событие change, если это возможно в вашей структуре.

Ответ 2

Google Suggest (автозаполнение) проверяет вход для изменений, поскольку события полностью ненадежны для Unicode. Браузеры, используемые для поддержки событий ввода в середине IME, которые были очень хороши для японцев, но поддержка быстро сломалась или была отброшена.

В прошлый раз, когда я проверял, был 2006 год, поэтому требуется повторная проверка. Вот мои предыдущие заметки:

http://web.archive.org/web/20060220125639/http://fnjordy.cus.org.uk/auto/

Включение исправления в Firefox:

https://bugzilla.mozilla.org/show_bug.cgi?id=286842

Ответ 3

В зависимости от настроек клавиатуры для записи одного китайского символа обычно требуется ввести несколько клавиш. Например, 豈 можно записать с помощью 4-клавишной последовательности (山 一口 廿), как вы можете видеть здесь: http://en.wiktionary.org/wiki/%E8%B1%88

В этом случае вам нужно использовать событие onchange (а также для корейского и японского языков!)