Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde a todos, após uma longa pesquisa na internet, eu consegui as formatações para os campos de CPF, CNPJ, TELEFONE, DATA e CEP, com verificação de digitos (verifica se os valores digitados são números, se não for não aceita os valores...)...
Abaixo segue o código das funções:
<script>
//--->Função para a formatação dos campos...<---
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 '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 > 5 && tam < 7)
campo.value = s.substr(0,5) + '-' + s.substr(5, tam);
break;
}
}
}
//--->Função para verificar se o valor digitado é número...<---
function digitos(event){
if (window.event) {
// IE
key = event.keyCode;
} else if ( event.which ) {
// netscape
key = event.which;
}
if ( key != 8 || key != 13 || key < 48 || key > 57 )
return ( ( ( key > 47 ) && ( key < 58 ) ) || ( key == 8 ) || ( key == 13 ) );
return true;
}
</script>
Chame as funções no input que você precisar, obs:para os campos como CPF, CNPJ, TEL, etc... Use maxlength para determinar quantos caracteres você poderá digitar no campo...
Segue abaixo o exemplo utilizando as duas funções (formatar e verificar se é número):
<input name="cep" type="text" id="cep" maxlength="9" size="8" onKeyPress="return digitos(event, this);" onKeyUp="Mascara('CEP',this,event);">
Espero que eu tenha ajudado...
Boa tarde a todos e qualquer dúvida só postar...
Carregando comentários...