क्या किसी के पास एक गतिशील जावास्क्रिप्ट इनपुट फ़िल्टर है जो एकाधिक ब्राउज़रों में टेक्स्ट इनपुट को सीमित करता है?जावास्क्रिप्ट कुंजी बोर्ड इनपुट फ़िल्टरिंग
मैंने कई उदाहरण ऑनलाइन देखे हैं, लेकिन उनमें से अधिकतर त्रुटियों या बहुप्रवाह समर्थन का अभाव है।
मेरा वर्तमान प्रयास नीचे पोस्ट किया गया है, लेकिन यह फ़ायरफ़ॉक्स के तहत स्थानांतरित संख्याओं में विफल रहा है, और मैंने अभी तक अन्य ब्राउज़रों का प्रयास नहीं किया है।
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