Ir para conteúdo
Fórum Script Brasil
  • 0

mascaras telefone


tonzinhu

Pergunta

iae galera,

tenho um script que bloqueia letras e formata o telefone de acordo com o digitado ..

Ex: (61) 3333-3333

Porém tem um erro, se alguém copiar somente o telefone de algum lugar, (notepad, etc) digamos sem o DDD (3333-3333) o campo não formata, fica assim >> (33333333 e teria que ficar assim + ou - (33)33-33 ...com faço pra acrescentar algo assim na minha função?

function getKeyCode(e)
{
    
if (window.event)
return window.event.keyCode;
else if (e)
return e.which;
else
return null;
}
function keyRestrict(e, validchars) { // v3.0
var key=", keychar=";
key = getKeyCode(e);
if (key == null) return true;
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
validchars = validchars.toLowerCase();
if (validchars.indexOf(keychar) != -1)
return true;
if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
return true;
return false;

}

function mascaraTel(tel){
    if(tel.value.length == 0){
        tel.value += '(';
    }
    if(tel.value.length == 3){
        tel.value += ')';
    }
    if(tel.value.length == 8){
        tel.value += '-';
    }
}

vlw

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Cara, posso te dar a lógica do que você quer. É o seguinte. Quando o usuário pressionar um botão no campo, seja digitando o telefone ou pelo Ctrl+V, a sua página vai ter que ver o tamanho da String que ele colocou. Se for igual a 10 significa que ele digitou 9999999999, se for maior que isso ele formatou de algum jeito e se for 1 é porque ele está digitando o telefone ao invés de simplesmente colar de algum lugar. Depois de feito isso, você tem que fazer o seguinte: Se a string for igual a 10 você deve pegar cada um dos caracteres da string e ver se são todos números. Se for, você coloca cada um deles num vetor e depois faz um laço pra formatar e ficar (99) 9999-9999. Para pegar cada um dos caracteres da String use a função charAt. Se algum caracter não for número você dá o alerta e manda o usuário digitar de novo. Se a String for maior que 10 você usa o charAt para pegar só os números e faz o que foi dito anteriormente. E se a String for igual a 1, 2, 3... você espera chegar a 10. Quando chegar use o que foi dito anteriormente, mas use o método onblur() para o caso do usuário digitar menos de 10 caracteres. Se isso acontecer você dá um alert dizendo que o número do telefone está incorreto.

Link para o comentário
Compartilhar em outros sites

  • 0

Não deu certo, continua a mesma coisa.

Se digita aparece normal a mascara mas se copiar e colar no campo o telefone por ex:33333333, ele fica desse mesmo jeito e não com deveria.

Ps: esse script não deixa dar ctrl+v para colar mas se clicar dentro do input(bot. direito) e colar ele aceita e fica desse jeito ai 33333333.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...