ksenofobius
@ksenofobius
Люблю долбить по клавишам

Изменение события ввода текста в инпут не работает на андроид браузере, почему?

Собственно, на пк работает, на ios работает, на андроид нефига не работает (в хроме), с боковой клавиатуры ПК тоже не работает (на мак оси работает). Возможно кто-то подскажет более правильный метод (либо как поправить уже существующий)
$(function () {
    var allowable_values = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '.'];
    var date_fields = $('.date');

    date_fields.keydown(function(e){
        var inp = $(this);
        console.log(e.which);
        if (allowable_values.indexOf(String.fromCharCode(e.which)) >= 0)  {
               if (inp.val().length == 2 | inp.val().length == 5) {
                   inp.val(inp.val() + '.');
               }
               return true;

        } else if ( e.which == 8 | e.which == 39 | e.which == 37){
           return true;
        } else {
            return false;
        }
    })
})
  • Вопрос задан
  • 386 просмотров
Решения вопроса 1
lazalu68
@lazalu68
Salmon
e.which это не вводимый символ, а код клавиши, соответственно вам нужно проверять не код клавиши, а код символа или сам символ. В любом случае, с регуляркой проще будет, как советует AnneSmith.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@AnneSmith
самая ленивая
используйте регулярное выражение
https://stackoverflow.com/questions/5570820/regex-...

в массиве ваши цифры заданы как string, тут может быть конфликт при сравнении
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы