dúvida javascript

8 views
Skip to first unread message

bruno rodrigues

unread,
Nov 15, 2010, 8:30:10 AM11/15/10
to pos_a...@googlegroups.com
Pessoal preciso de uma ajuda,
temos uma página em nosso site que faz cadastro de clientes, no formulário tem dois <radio>, um de cpf e outro de cnpj. e um <text> que a pessoa digita o número do documento.
preciso que quando o cpf for selecionado o <text> receba a máscara de cpf e a mesma coisa para o cnpj. As devidas máscaras eu sei fazer mas não sei como faço para o navegador entender q quando um <radio> estiver selecionado ele cumprirá uma determinada  máscara.
Se alguém souber de uma outra alternativa também será bem vinda.
Alguém pode me ajudar?

 

Romano Augusto M. de Souza

unread,
Nov 15, 2010, 12:03:54 PM11/15/10
to pos_a...@googlegroups.com
Ô velho... vc pode associar o evento "click" ao radio button p/ aplicar a sua função que põe a máscara de cpf/cnpj no determinado input...

Inclusive, o evento "click" p/ esse caso, também é acionado quando o cidadão tabula e seleciona o radio com a barra de espaço... =]


Att,

Romano Augusto M. de Souza


2010/11/15 bruno rodrigues <bruno...@yahoo.com.br>

bruno rodrigues

unread,
Nov 17, 2010, 7:45:35 AM11/17/10
to pos_a...@googlegroups.com
ow Romano, tipo, na primeira vez que eu fiz foi da seguinte maneira, coloquei o evento onkeypress no <text> de forma que chamasse a
função da mascara quando fosse digitado e dentro da função ela recebia o valor do <radio>  se fosse cpf fazia uma mascara e caso fosse cnpj ele fazia outra, acontece que o erro que acontece com a forma que eu fiz
é o mesmo que ta acontecendo da forma que vc falou, ele não recebe o valor do <radio> de forma alguma mesmo a função sendo chamada por ele.
eu fiz do jeito que vc falo, ve se essa foi sua idéia:

function mask()
{
var a = document.nomeformulario.nomeradio;
if(a.value=="cpf")
{
 document.nomeformulario.nometext = funçãomascaracpf();
}
else
{
 document.nomeformulario.nometext = funçãomascaracnpj();
}
}


<input type=radio name=documento value=cpf  onclick=mask()>
<input type=radio name=documento value=cnpj onclick=mask()>
______________________________________________________________
o jeito q eu fiz foi bem parecido:

function mask()
{
var a = document.nomeformulario.nomeradio.value;
if(a=="cpf")
{
 função cpf
}
else
{
 função cnpj
}

}


<input type=text name=documento onkeypress=mask()>

___________________________________________
já tentei utilizar id com getfieldbyid ou name e nada,vc sabe oq pode ta acontecendo mano?

--- Em seg, 15/11/10, Romano Augusto M. de Souza <romanoa...@gmail.com> escreveu:

Romano Augusto M. de Souza

unread,
Nov 17, 2010, 3:59:22 PM11/17/10
to pos_a...@googlegroups.com
Que tipo de erro tá dano? =]

Tenta passar o value como parâmetro:

function mask(valor)
{

if(valor=="cpf")

{
 document.nomeformulario.nometext = funçãomascaracpf();
}
else
{
 document.nomeformulario.nometext = funçãomascaracnpj();
}
}


<input type=radio name=documento value=cpf  onclick=mask(this.value)>
<input type=radio name=documento value=cnpj onclick=mask(this.value)>

Att,

Romano Augusto M. de Souza


2010/11/17 bruno rodrigues <bruno...@yahoo.com.br>

Bárbara Malafaia

unread,
Nov 18, 2010, 6:30:12 AM11/18/10
to pos_a...@googlegroups.com
Lee, olha ai se isso te ajuda... beijos.
 
 
----------------------------------------------------------------------------------------------
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
<script language="JavaScript">
/*-----------------------------------------------------------------------
Máscara para o campo documento
de acordo com o rádio marcado (CPF ou CNJP)
Exemplo do campo text:
 <input type="text" name="documento" id="documento" onKeyPress="MaskDoc(event, this)"/> 
Exemplo dos campos radio:
 <input type="radio" name="radio" id="cpf" value="cpf" />
 <input type="radio" name="radio" id="cnpj" value="cnpj" />
-----------------------------------------------------------------------*/
function MaskDoc(evento, objeto){
 var keypress=(window.event)?event.keyCode:evento.which;
 campo = eval (objeto);
 
 
 if(cpf.checked){ 
  
  if (campo.value == '000.000.000-00')
  {
   campo.value=""
  }
 
  caracteres = '0123456789';
  separacao1 = '.';
  separacao2 = '-';
  conjunto1 = 3;
  conjunto2 = 7;
  conjunto3 = 11;
  if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (14))
  {
   if (campo.value.length == conjunto1 )
   campo.value = campo.value + separacao1;
   else if (campo.value.length == conjunto2)
   campo.value = campo.value + separacao1;
   else if (campo.value.length == conjunto3)
   campo.value = campo.value + separacao2;
  }
  else
   event.returnValue = false;
 }
 else if(cnpj.checked)
 {
  if (campo.value == '00.000.000/0000-00')
  {
   campo.value=""
  }
 
  caracteres = '0123456789';
  separacao1 = '.';
  separacao2 = '/';
  separacao3 = '-';
  conjunto1 = 2;
  conjunto2 = 6;
  conjunto3 = 10;
  conjunto4 = 15;
  if ((caracteres.search(String.fromCharCode (keypress))!=-1) && campo.value.length < (18))
  {
   if (campo.value.length == conjunto1 )
   campo.value = campo.value + separacao1;
   else if (campo.value.length == conjunto2)
   campo.value = campo.value + separacao1;
   else if (campo.value.length == conjunto3)
   campo.value = campo.value + separacao2;
   else if (campo.value.length == conjunto4)
   campo.value = campo.value + separacao3;
  }
  else
   event.returnValue = false;  
 }
}
</script>
 
</head>
<body>
<p>
  <label>
    <input type="radio" name="radio" id="cpf" value="cpf" />
    CPF</label>
</p>
<p>
  <label>
    <input type="radio" name="radio" id="cnpj" value="cnpj" />
    CNPJ</label>
</p>
<p>Número:</p>
<p>
  <label>
    <input type="text" name="documento" id="documento" onKeyPress="MaskDoc(event, this)"/>
  </label>
</p>
</body>
</html>
 
 
-----------------------------------------------------------------------------------------------

bruno rodrigues

unread,
Nov 19, 2010, 7:18:40 AM11/19/10
to pos_a...@googlegroups.com
Bárbara, seu código não me ajudou ............ ELE SALVOU MINHA VIDA!!!!!!rsrs
Muito obrigado pela ajuda Bárbara bjão,  vlw tbm Romano. Obrigado por terem me ajudado.

--- Em qui, 18/11/10, Bárbara Malafaia <barbara...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages