Javascript Input Mask / Javascript Input Filtreleme
Aug
26
Bir iş dolayısı ile Prototype framework ile entegre çalışan bir input filtreleme / mask kodu yazmam gerekti , araştırmalarımda tamamen dinamik bir filtreleme sistemi bulamadım dedim ki yazmak gerek ve yazdım. Sonuçta ortaya böyle bir şey çıktı.
Gerekli olan : Prototype JavaScript framework, version 1.6.0.2
Kod :
JAVASCRIPT:
-
if ( typeof(My) === 'undefined' ) {
-
My = new Object();
-
}
-
My.Mask = {
-
install:function() {
-
var elements = $$('input[mask]');
-
elements.each(function(item) {
-
Event.observe(item, 'keypress',My.Mask.setMask.bindAsEventListener(item), true);
-
});
-
},
-
mask:{
-
format:'',
-
regex:''
-
},
-
setMask:function(event) {
-
var mask_code = this.readAttribute("mask");
-
var mask_sys = mask_code.split("|");
-
var mask = My.Mask.mask;
-
mask.format = mask_sys[1].replace(/#/g,' ');
-
if(mask_sys[0] == "number") {
-
mask.regex = /\d/;
-
}else if(mask_sys[0] == "all") {
-
mask.regex = /\w/;
-
}else if(mask_sys[0] == "char") {
-
mask.regex = /[a-zA-Z]/;
-
}
-
-
var keyCode = My.Mask.getKeyPress(event);
-
-
if(My.Mask.notChar(keyCode)) {
-
var chr = String.fromCharCode(keyCode);
-
var strng = this.value + chr;
-
var pos = strng.length;
-
if ( mask.regex.test(chr) && pos <= mask.format.length ) {
-
if ( mask.format.charAt(pos - 1) != ' ' ) {
-
strng = this.value + mask.format.charAt(pos - 1) + chr;
-
}
-
this.value = strng;
-
}
-
Event.stop(event);
-
}
-
-
},
-
getKeyPress: function(e) {
-
return window.event ? window.event.keyCode
-
: e ? e.which
-
: 0;
-
},
-
notChar: function(key) {
-
return ( key>= 32 && key <127 );
-
}
-
}
Örnek Kullanım:
Body tagı :
HTML:
-
<body onload="My.Mask.install()">
Input tagı :
HTML:
-
<input id="input_time" type="text" mask="number|+##(###)###-####" />
Etiketler : Javascript, input, Javascript, mask