Ir para conteúdo

POWERED BY:

Arquivado

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

Johnnys Mau

[Resolvido] Colocar mascaras Java script

Recommended Posts

ae galera eu nao saco muito de js queria uma ajuda como eu coloco essas mascaras pra funfa?

o negocio é o seguinte essas mascaras de telefone cpf etc, estao rodando 100% num sistema aki da empresa ai peguei elas para por num sisteminha aki q to incrementando ta bem assim:

 

 

index

<script type="text/javascript" src="inc/js.js"></script> 

 

pgq precisa do filtro

 <tr>
 <td class="form">Telefone</td>
 <td class="form"><input type="text" name="telefone" size="15" value="<?echo$_POST['telefone'];?>" onkeydown="mascara(this,telefone);"  maxlength="14"></td>
</tr>

 

arkivo js

/************MASCARAS ***************/
function mascara(o,f){
   v_obj=o
   v_fun=f
   setTimeout("execmascara()",1)
}

function execmascara(){
   v_obj.value=v_fun(v_obj.value)
}

function leech(v){
   v=v.replace(/o/gi,"0")
   v=v.replace(/i/gi,"1")
   v=v.replace(/z/gi,"2")
   v=v.replace(/e/gi,"3")
   v=v.replace(/a/gi,"4")
   v=v.replace(/s/gi,"5")
   v=v.replace(/t/gi,"7")
   return v
}

function soNumeros(v){
   return v.replace(/\D/g,"")
}

function telefone(v){
   v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
   v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
   v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
   return v
}

function cpf(v){
   v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
   v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
   v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                            //de novo (para o segundo bloco de números)
   v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
   return v
}

function cep(v){
   v=v.replace(/\D/g,"")                //Remove tudo o que não é dígito
   v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
   return v
}

function cnpj(v){
   v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
   v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
   v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
   v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
   v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
   return v
}

function romanos(v){
   v=v.toUpperCase()             //Maiúsculas
   v=v.replace(/[^IVXLCDM]/g,"") //Remove tudo o que não for I, V, X, L, C, D ou M
   //Essa é complicada! Copiei daqui: http://www.diveintopython.org/refactoring/refactoring.html
   while(v.replace(/^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/,"")!="")
       v=v.replace(/.$/,"")
   return v
}

function semespaco(v){
                               v = v.replace(/[\s\t\n]/g, "");
                               return v;
}

function site(v){

   v=v.replace(/^http:\/\/?/,"")
   dominio=v
   caminho=""
   if(v.indexOf("/")>-1)
       dominio=v.split("/")[0]
       caminho=v.replace(/[^\/]*/,"")
   dominio=dominio.replace(/[^\w\.\+-:@]/g,"")
   caminho=caminho.replace(/[^\w\d\+-@:\?&=%\(\)\.]/g,"")
   caminho=caminho.replace(/([\?&])=/,"$1")
   if(caminho!="")dominio=dominio.replace(/\.+$/,"")
   v="http://"+dominio+caminho
   return v
}
/*************************************/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi @Johnnys,

 

Primeiro você tem q entender porque não tá funcionando.

Leia:

http://wbruno.com.br/2011/03/31/como-debugar-javascript-firefox-erros-comuns/

 

 

A primeira correção que já te indico fazer, é não usar o nome da função js, igual ao id ou name do campo.

Diferencie assim:

onkeydown="mascara(this, mtelefone);"

e:

 

function mtelefone(v){

 

Fora isso, somente debugando conforme o link que postei, é que você descobrirá pq não está funcionando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente fazer assim

onkeydown="mascara(this.value,telefone);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não não @shini, veja:

 v_obj.value=v_fun(v_obj.value)

 

você tem que passar o objeto mesmo, e não somente o value.

Essa tua sugestão não está correta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

shini tentei mas nao deu aki mas vlw msm assim, no firefox ta aparecendo no console de erros um erro no js, agr copiei ele original igual do otro sistema o js completo pq podia ta faltando algo mas ta amostrando o erro, ta dizendo q o erro ta aki

 

v_obj.value=v_fun(v_obj.value)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diga qual o erro, se não fica impossível ajudarmos.

 

Note que o correto é passar o this e não o this.value como o @shini sugeriu.

você fez a alteração que sugeri ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai galera brigado ai pela ajuda eu contactei o desenvlovedor do sistema q rodava esse js e o problema tava no nome do imput q era o msm da funçao vlw ai brigadao pela colaboração, RESOLVIDO!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Johnnys Mau, foi exatamente isso que eu disse no meu primeiro post.

 

Tenta ler com mais atenção, ai você já teria resolvido, sem precisar falar com o DEV :lol:

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.