Prezados,
Como colocar máscaras de entrada em um campo Data (DD/MM/YYYY) num formulário JSF, preferencialmente sem utilizar nenhum componente extra?
Voce tera que usar javaScript segue exemplo
Função JavaScript
function Mascara(tipo, campo, teclaPress) {
if (window.event) {
var tecla = teclaPress.keyCode;
} else {
tecla = teclaPress.which;
}
var s = new String(campo.value);
// Remove todos os caracteres � seguir: ( ) / - . e espa�o, para tratar a
// string denovo.
s = s.replace(/(\.|\(|\)|\/|\-| )+/g, '');
tam = s.length + 1;
if (tecla != 9 && tecla != 8) {
switch (tipo) {
case 'CPF':
if (tam > 3 && tam < 7)
campo.value = s.substr(0, 3) + '.' + s.substr(3, tam);
if (tam >= 7 && tam < 10)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, tam - 6);
if (tam >= 10 && tam < 12)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, 3) + '-' + s.substr(9, tam - 9);
break;
case 'CNPJ':
if (tam > 2 && tam < 6)
campo.value = s.substr(0, 2) + '.' + s.substr(2, tam);
if (tam >= 6 && tam < 9)
campo.value = s.substr(0, 2) + '.' + s.substr(2, 3) + '.'
+ s.substr(5, tam - 5);
if (tam >= 9 && tam < 13)
campo.value = s.substr(0, 2) + '.' + s.substr(2, 3) + '.'
+ s.substr(5, 3) + '/' + s.substr(8, tam - 8);
if (tam >= 13 && tam < 15)
campo.value = s.substr(0, 2) + '.' + s.substr(2, 3) + '.'
+ s.substr(5, 3) + '/' + s.substr(8, 4) + '-'
+ s.substr(12, tam - 12);
break;
case 'CNPJCPF':
if (tam > 3 && tam < 7)
campo.value = s.substr(0, 3) + '.' + s.substr(3, tam);
if (tam >= 7 && tam < 10)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, tam - 6);
if (tam >= 10 && tam < 12)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, 3) + '-' + s.substr(9, tam - 9);
if (tam >= 14)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, 3) + '/' + s.substr(9, 3) + '-'
+ s.substr(12, tam - 12);
break;
case 'TEL':
if (tam > 2 && tam < 4)
campo.value = '(' + s.substr(0, 2) + ') ' + s.substr(2, tam);
if (tam >= 7 && tam < 11)
campo.value = '(' + s.substr(0, 2) + ') ' + s.substr(2, 4)
+ '-' + s.substr(6, tam - 6);
break;
case 'DATA':
if (tam > 2 && tam < 4)
campo.value = s.substr(0, 2) + '/' + s.substr(2, tam);
if (tam > 4 && tam < 11)
campo.value = s.substr(0, 2) + '/' + s.substr(2, 2) + '/'
+ s.substr(4, tam - 4);
break;
case 'CEP':
if (tam > 2 && tam < 6)
campo.value = s.substr(0, 2) + '.' + s.substr(2, tam);
if (tam >= 6 && tam < 9)
campo.value = s.substr(0, 2) + '.' + s.substr(2, 3) + '-'
+ s.substr(5, tam - 5);
break;
}
}
}
seu input
<h:inputText onkeypress="Mascara('DATA',this,event);" />
[quote=leonardobhbr]Voce tera que usar javaScript segue exemplo
Função JavaScript
function Mascara(tipo, campo, teclaPress) {
if (window.event) {
var tecla = teclaPress.keyCode;
} else {
tecla = teclaPress.which;
}
var s = new String(campo.value);
// Remove todos os caracteres � seguir: ( ) / - . e espa�o, para tratar a
// string denovo.
s = s.replace(/(\.|\(|\)|\/|\-| )+/g, '');
tam = s.length + 1;
if (tecla != 9 && tecla != 8) {
switch (tipo) {
case 'CPF':
if (tam > 3 && tam < 7)
campo.value = s.substr(0, 3) + '.' + s.substr(3, tam);
if (tam >= 7 && tam < 10)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, tam - 6);
if (tam >= 10 && tam < 12)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, 3) + '-' + s.substr(9, tam - 9);
break;
case 'CNPJ':
if (tam > 2 && tam < 6)
campo.value = s.substr(0, 2) + '.' + s.substr(2, tam);
if (tam >= 6 && tam < 9)
campo.value = s.substr(0, 2) + '.' + s.substr(2, 3) + '.'
+ s.substr(5, tam - 5);
if (tam >= 9 && tam < 13)
campo.value = s.substr(0, 2) + '.' + s.substr(2, 3) + '.'
+ s.substr(5, 3) + '/' + s.substr(8, tam - 8);
if (tam >= 13 && tam < 15)
campo.value = s.substr(0, 2) + '.' + s.substr(2, 3) + '.'
+ s.substr(5, 3) + '/' + s.substr(8, 4) + '-'
+ s.substr(12, tam - 12);
break;
case 'CNPJCPF':
if (tam > 3 && tam < 7)
campo.value = s.substr(0, 3) + '.' + s.substr(3, tam);
if (tam >= 7 && tam < 10)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, tam - 6);
if (tam >= 10 && tam < 12)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, 3) + '-' + s.substr(9, tam - 9);
if (tam >= 14)
campo.value = s.substr(0, 3) + '.' + s.substr(3, 3) + '.'
+ s.substr(6, 3) + '/' + s.substr(9, 3) + '-'
+ s.substr(12, tam - 12);
break;
case 'TEL':
if (tam > 2 && tam < 4)
campo.value = '(' + s.substr(0, 2) + ') ' + s.substr(2, tam);
if (tam >= 7 && tam < 11)
campo.value = '(' + s.substr(0, 2) + ') ' + s.substr(2, 4)
+ '-' + s.substr(6, tam - 6);
break;
case 'DATA':
if (tam > 2 && tam < 4)
campo.value = s.substr(0, 2) + '/' + s.substr(2, tam);
if (tam > 4 && tam < 11)
campo.value = s.substr(0, 2) + '/' + s.substr(2, 2) + '/'
+ s.substr(4, tam - 4);
break;
case 'CEP':
if (tam > 2 && tam < 6)
campo.value = s.substr(0, 2) + '.' + s.substr(2, tam);
if (tam >= 6 && tam < 9)
campo.value = s.substr(0, 2) + '.' + s.substr(2, 3) + '-'
+ s.substr(5, tam - 5);
break;
}
}
}
seu input
<h:inputText onkeypress="Mascara('DATA',this,event);" />
Valeu pela dica.
Funcionou legal.