Возникла необходимость что-бы в 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?