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