Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel Ribeiro França

Telefones com 9 dígitos

Recommended Posts

Olá pessoal.

 

Acredito que alguns aqui já tenham ou vão se deparar com a nova regra de telefones com DDD 11.

Segue link com a explicação: http://www.teleco.com.br/num_cel.asp

 

E aí fica a dúvida, como validar e fazer máscaras agora?

 

Para quem já usa DDD+Telefone em campos separados, ta praticamente salvo.

 

No caso das máscaras que utilizamos hoje em dia a coisa já complica um pouco mais.

Acredito que é só verificar se foi digitado 11 como DDD e reaplicar a máscara correta.

Já nesse caso temos um problema, hoje verificamos se o número começa por 8 ou 9 e descobrimos se é celular.

Só que de acordo com a matéria do link, logo funcionaram números celular começando com 5( :upset: ).

 

Alguém já lidou ou está lidando com estes problemas? Como pensam em resolver? Vamos trocar idéias!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que é só verificar se foi digitado 11 como DDD e reaplicar a máscara correta.

esta poderia ser realmente uma saída.

Porém é mais trabalhosa a longo prazo.

 

Imagina que comecem a extender os 9 digitos para mais DDDs ?

ficar listando e conferindo isso, vai dar muito trabalho. Seria melhor que as nossas mascaras aceitassem 8 ou 9, independente do DDD

 

 

Já nesse caso temos um problema, hoje verificamos se o número começa por 8 ou 9 e descobrimos se é celular.

o meu celular começa com 6.

Essa verificação "se é celular" creio que não possa ser feita mais, já tem algum tempo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A questão de ter 9 dígitos acho que é mais tranquilo resolver mas saber "automaticamente" o tipo de telefone pode ser inviável já que não temos muitos padrões diferentes em São Paulo, talvez a melhor solução é deixar o usuário dizer qual o tipo deste telefone.

CORREÇÂO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu penso que isso é um problema do usuário quando for utilizar o telefone, ele já deve saber que é preciso por o 9 na frente, eu não mudaria um sistema só por causa disso. :upset:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz uma adaptação em uma máscara q usa expressão regulara, para aceitar o nono digito:

 

http://wbruno.com.br/2012/08/02/mascara-campo-de-telefone-em-javascript-com-regex-nono-digito-telefones-sao-paulo/

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se o DDD estiver em um campo e o telefone em outro? Daí a máscara pode ser aplicada no referido campo a partir do onBlur do campo com o DDD.

 

Ainda restaria a questão de ter de incluir novas regras para cada DDD, de cada Estado, com o passar dos anos, mas eu não vejo isso como sendo uma violação e sim uma extensibilidade das regras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se o DDD estiver em um campo e o telefone em outro?

ai temos uma deficiência de planejamento do projeto. Não faça isso.

 

Formulários são chatos de preencher, economize o usuário. Deixe apenas um campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na minha humilde opinião, seria dos males o menor.

 

Senão o algorítimo da máscara vai ficar tão cabuloso que quem vai sofrer é o programador na hora de implementar novas variantes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Bruno Augusto,

 

Dá uma olhada na máscara que eu propus.

Ela formata: (11) 1234-5678, e se você inserir mais um dígito, ela formata: (11) 12345-6789

 

E pronto. Não preciso saber se o cara digitou DD 11, desde que ele digite "o nono dígito", eu formato isso e resolvido. Sem nenhum algorítmo complicado, e nada que atrapalhe a experiência do usuário.

 

 

Note, que não estou induzindo nenhum usuário ao erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu estou fazendo:

 

JQuery

JQuery Masked Input Plugin

 

Meu "ajuste técnico-computacional" :thumbsup:

 

$('.celular').on('keyup.celular', function() {
var me = $(this);
var value = me.val().replace(/\D+/g, '');
var placeholder = '';
if (value.length == 2) {
	if (value == 11) {
		me.unmask().mask('(99) 99999-9999');
	} else {
		me.unmask().mask('(99) 9999-9999');
	}
	me.val(value).caret(5, 5).triggerHandler('input'); // para mozilla
	me.triggerHandler('paste'); // para IEca
}
});

 

Ou seja, coloco uma classe no campo indicando que será para celular.

Se começar com 11, mudo a mascara para ddd + 9 digitos. Do contrário, ddd + 8 digitos

 

@braços e fiquem com Deus!

 

Edit:

 

Em relação aos DDD's de outros estados, isso poderia ser contornado com um arquivo de configuração.

 

@William

 

Entendo seu ponto de vista (não indução ao erro), mas também você não está prevenindo que seu usuário cometa o erro, e todos nós sabemos que usuários cometem erros.

 

Uma vez que a lei que está em vigor permite que o nono digito seja acrescentado somente à telefones celulares com DDD 11, no meu ponto de vista, é dever do sistema se adequar à legislação da melhor forma possível e evitar que o dígito seja acrescentado sem necessidade.

 

Porque, supondo que o usuário coloque:

 

(45) 12345-6789

 

Note que este DDD é da região de Foz do Iguaçu / PR.

Ele digitou por engano.

Como vou saber se o dígito a mais é o 1 ou é o 9?

De repente, ele deu um copy n' paste. Fazer qualquer assertiva dizendo que ele inseriu o 9 por engano poderia levar a insegurança dos dados informados.

 

Enfim, como exposto anteriormente, é o meu ponto de vista ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Enfim, como exposto anteriormente, é o meu ponto de vista ;)

perfeito ponto de vista @hufersil, e ótimo código solução.

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.