Показать сообщение отдельно
  #1 (permalink)  
Старый 13.11.2017, 00:11
Аватар для Neor
Новичок на форуме
Отправить личное сообщение для Neor Посмотреть профиль Найти все сообщения от Neor
 
Регистрация: 12.11.2017
Сообщений: 8

Разъясните код
Возникла необходимость что-бы в 3 input-а вводились только цифры. После недолгих изысканий нашел код
document.getElementsByTagName('input')[0].onkeypress = function(a) {

      a = a || event;

      if (a.ctrlKey || a.altKey || a.metaKey) return;

      var chr = getChar(a);

      // с null надо осторожно в неравенствах, т.к. например null >= '0' => true!
      // на всякий случай лучше вынести проверку chr == null отдельно
      if (chr == null) return;

      if (chr < '0' || chr > '9') {
        return false;
      }

    }

    function getChar(event) {
      if (event.which == null) {
        if (event.keyCode < 32) return null;
        return String.fromCharCode(event.keyCode) // IE
      }

      if (event.which != 0 && event.charCode != 0) {
        if (event.which < 32) return null;
        return String.fromCharCode(event.which) // остальные
      }

      return null; // специальная клавиша
    }

Для одного input-а код работает идеально, а для 3-х input-ов ни в какую. (копипастит в данном случае считаю идиотизмом )Поэтому прошу разъяснить как в данном случае работает первая функция(1-ая строка). Как этот код адаптировать для 3-х input-ов с минимальными жертвами, и что передается в аргумент a, и почему не получается дать название функции и выводить туда аргументы через this?
Ответить с цитированием