Мы определили это регулярное выражение [a-zA-Z0-9-] и реализовали событие onkeypress для ограничения ввода, по-видимому, работает хорошо, но при использовании испанской клавиатуры позволяет вставить символ á é í ó ú, который генерируется нажатием 2 клавиш, и реализованное решение не блокирует этот вход. Очевидно, что в этом случае не следует использовать событие нажатия клавиши. Есть ли у кого-нибудь идея лучшего подхода к реализации этого ограничения? Требование состоит в том, чтобы избегать ввода символов, отличных от [a-zA-Z0-9-], но посимвольно
Как ограничить ввод áÁ éÉ íI óÓ úÚ с испанской клавиатуры с помощью javascript?
Ответы (1)
Регулярное выражение обработчика ключевых событий должно быть закреплено. Попробуйте ^[a-zA-Z0-9-]+$
person
Community
schedule
02.10.2014
Проблема, с которой я столкнулся, заключается в следующем: событие нажатия клавиши не запускается при нажатии клавиши deadacute, вы знаете, что á é í ó ú генерируются нажатием клавиши deadacute, а затем a e i o u. событие нажатия клавиши не работает в этих случаях
- person jvacaq; 07.10.2014
В основном я использую MFC, но после некоторого чтения я сделаю предположение. Каждая клавиша должна иметь событие keydown/keyup, даже мертвые клавиши. Попробуйте обработать эти события, найдите
"U+0302" (Combining Circumflex Accent key)
мертвый ключ, о котором вы говорите. Если найдено, вызовите preventDefault() для этого элемента только для этого ключа.
- person ; 07.10.2014
Также здесь может быть обходной путь - stackoverflow.com/questions/10721499/
- person ; 07.10.2014