Есть ли у кого-нибудь рабочий динамический входной фильтр javascript, который ограничивает ввод текста через несколько браузеров?Входная фильтрация входной клавиатуры Javascript
Я видел несколько примеров в Интернете, но большинство из них, похоже, имеют недостатки или отсутствие поддержки мультиблок.
Моя текущая попытка опубликована ниже, но она не работает для сдвинутых номеров под firefox, и я еще не пробовал другие браузеры.
Как показывает http://www.quirksmode.org/js/keys.html, это непростая задача.
У кого-нибудь есть лучшее решение?
var numb = /[0-9]/;
var lwr = /[a-z]/;
var upr = /[A-Z]/;
var alpha = /a-zA-Z]/; //not checked
var alphaNum = /a-zA-Z0-9/; //not checked
function onKeyPressAcceptValues(e, reg){
var key = window.event ? e.keyCode : e.which;
//permit backspace, tab, delete, arrow buttons, (key == 0 for arrow keys)
alert(key);
if(key == 8 || key == 9 || key == 46 ||(key>32 && key <41 ||key == 0)){
return true;
}
var keychar = String.fromCharCode(key);
return reg.test(keychar);
}
function isNumberKey(parm) {return onKeyPressAcceptValues(parm,numb);}
function isLowerKey(parm) {return onKeyPressAcceptValues(parm,lwr);}
function isUpperKey(parm) {return onKeyPressAcceptValues(parm,upr);}
function isAlphaKey(parm) {return onKeyPressAcceptValues(parm,alpha);}
function isAlphanumKey(parm) {return onKeyPressAcceptValues(parm,alphaNum);}
Он будет использоваться через
<input type="text" name="pw[first_name]" size="15" maxlength="15" onkeypress="return isAlphaKey(event)">
Следует также упомянуть, что он не позволяет другим ключам пройти, например, сдвинутым цифровым клавишам. Вероятно, нам нужна замена, а не улучшение. – lief79