Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo Roberto Start Corp

Campo celular 8 ou 9 Digitos

Recommended Posts

Boa noite
estou com um problema
quando coloco um celular com 8 dígitos ele aplica a mascar corretamente, porem se eu apagar o campo para digitar novamente... ela não deixa eu colocar um celular com 9 dígitos
para digitar um celular com 9 dígitos eu tenho que recarregar a pagina
alguém pode me ajudar ????


    //acrescenta à classe string um método necessário para facilitar
    String.prototype.splice = function( idx, rem, s ) {
        return (this.slice(0,idx) + s + this.slice(idx + Math.abs(rem)));
    };
 
    $(function(){
 
        //máscara inicial com o nono digito opcional
		
        $("#TEL01").mask('(99) 99999-9999');
 
        //ao sair do campo, vamos atualizar a máscara
        $("#TEL01").focusout(function(){
 
            //pegando apenas os digitos
            var cel = $("#TEL01").val().replace('-','').replace(/_/g,'');
			
			cel = cel.replace('(','').replace(')','').replace(' ','');
 
            //se tiver 8 digitos
            if(cel.length == 10)
            {
                //vamos colocar o '-' no meio
                cel = cel.splice(2, 0, ' ').splice(7, 0, '-');
                //seta a máscara para aceitar o nono digito
                $("#TEL01").mask('(99) 9999-9999');
            }
            //caso contrário
            else if(cel.length == 11)
            {
                //deixamos 5 digitos na esquerda
                cel = cel.splice(2, 0, ' ').splice(8, 0, '-');
                //seta a máscara para aceitar um digito a menos (caso tenha digitado errado)
                $("#TEL01").mask('(99) 99999-9999');
            }
 
            //põem o valor no campo
            $(this).val(cel);
 
        });
 
    });

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde, Paulo. Segue abaixo um código que vai te ajudar

<script type="text/javascript">
	function mascara(o,f){
		v_obj=o
		v_fun=f
		setTimeout("execmascara()",1)
	}
	function execmascara(){
		v_obj.value=v_fun(v_obj.value)
	}
	function mtel(v){
		v=v.replace(/\D/g,"");//Remove tudo o que não é dígito
		v=v.replace(/^(\d{2})(\d)/g,"($1) $2");//Coloca parênteses em volta dos dois primeiros dígitos
		v=v.replace(/(\d)(\d{4})$/,"$1-$2");//Coloca hífen entre o quarto e o quinto dígitos
		return v;
	}
	function id( el ){
		return document.getElementById( el );
	}
	window.onload = function(){
		id('telefone').onkeypress = function(){
			mascara( this, mtel );
		}
	}
</script>

O código não é de minha autoria. Ver modelo

Qualquer duvida manda um email para aula@webdre.com.br

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, vou lhe passar (de bandeja :natalw00t: ) o código para o seu plugin, que é o jQuery Masked Input:

        $('input.telefone').focusin(function(){$(this).mask("(99) 99999999?9");});
        $('input.telefone').focusout(function(){
            var phone, element;
            element = $(this);
            element.unmask();
            phone = element.val().replace(/\D/g, '');
            if(phone.length > 10) {
                element.mask("(99) 99999-999?9");
            } else {
                element.mask("(99) 9999-9999?9");
            }
        }).trigger('focusout');

Uso isso e funciona perfeitamente..

 

Alem disso, esse código é pequenino..

 

É isso ai man.. boa sorte ai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.