Сообщество
Логин
Пароль
Забыли пароль?     Регистрация
От всей души
Мы старались, делали.
Можно поблагодарить разработчиков любой суммой.
Общение / Веб версия / Не работает ввод с цифровой клавиатуры

Не работает ввод с цифровой клавиатуры

Ilyan
19 октября 2014 20:40
if (chr < '0' || chr > '9') {
if (chr != '/' && chr != '-' && chr != '+' && chr != '*' && chr != '(' && chr != ')')
return false;
}

* я бы еще разрешил пробелы
Ilyan
19 октября 2014 20:55
* и, конечно, точку с запятой.

** и в конце, если это ни один из разрешенных символов, то превращать в запятую все, что под клавишей ',' и превращать в точку все, что под клавишей '.'.
mikhael.vk
19 октября 2014 21:23
И заодно протестировать, чтобы это все работало на маковой клавиатуре, а то там немного другое расположение точек, запятых и тп.
x35bug
22 октября 2014 22:44
Ilyan Пишет:
if (chr != '/' && chr != '-' && chr != '+' && chr != '*' && chr != '(' && chr != ')')
Не сразу увидел этот топик - оказывается, я не один страдаю от этого нововведения.

Да, вот в таком виде (с точкой и запятой) у меня работает все.

http://learn.javascript.ru/play/H6L6e

Хотя в любом случае тестировать надо все такие вещи - мало ли в каких браузерах какие проблемы могут быть.
Advard
22 октября 2014 23:31
Это решение среди прочего запретило клавиатурные комбинации для вставки, например Shift+Ins. IMHO фильтрация по сканкодам спорное решение, уж больно они разнообразны...
Ilyan
22 октября 2014 23:33
x35bug Пишет:
http://learn.javascript.ru/play/H6L6e
А цифры '8' и '9'? :))
x35bug
22 октября 2014 23:50
Ilyan Пишет:
А цифры '8' и '9'? :))
И правда, пока играл с этим скриптом, забыл вернуть обратно. Разумеется надо 7 заменить обратно на 9 :)
http://learn.javascript.ru/play/4LvIA
Admin
 
23 октября 2014 11:21
Спасибо, возьмём на вооружение.
Кто-нибудь бы из маководов ещё протестил.
Andrei
26 октября 2014 00:37
Admin Пишет:
Спасибо, возьмём на вооружение. Кто-нибудь бы из маководов ещё протестил.
Я пользуюсь Opera/OSX.

Если забыть переключить русскую раскладку и ввести «ю» вместо точки, то в поле суммы просто ничего не вводиться. В итоге, вместо цены 7.99 я ввожу 799. Старое поведение, когда показывался alert, работало надежнее.

В консоли код -- 231, как для б, так и для ю.

Почините, пожалуйста.
Andrei
26 октября 2014 00:40
Opera 12.16/Mac OS X.

В Chrome все работает хорошо. Думаю, на эту версию opera можно забить.

В Хроме в консоли коды символов -- 188 и 190 для русской раскладки.
Admin
 
26 октября 2014 09:56
Добавили 231.
Однако не понятно, как это для ю и б - один и тот же код, они что на одной кнопке?
Ilyan
26 октября 2014 10:43
Admin Пишет:
Однако не понятно, как это для ю и б - один и тот же код, они что на одной кнопке?
Мыши плакали, кололись, но продолжали грызть кактус
Andrei
27 октября 2014 06:58
Admin Пишет:
Однако не понятно, как это для ю и б - один и тот же код, они что на одной кнопке?
Проверил еще раз -- для всех русских букв определяется один и тот же код — 231. (Opera 12.16).
Admin
 
27 октября 2014 21:10
Проверьте сейчас ещё раз, выложили вариант от Ильи.
Andrei
27 октября 2014 22:09
Теперь работает.
  Сюда 1 2
Чтобы отвечать на сообщения - зарегистрируйтесь и войдите в личный кабинет.