Ir para conteúdo

Arquivado

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

Carcleo

Pegar value do próximo campo

Recommended Posts

Preciso pegar o valor do próximo campo

 

O que acontece é que estou em um loop que procura pelos campos do formulário,
Daí procuro apenas por campos textarea, text e radio:
Então, desses, vejo se o campo da vez é radio (só tenho um no form).
Então, sei que o próximo é o input text que quero validar.
Se o radio estiver marcado com valor 's', o próximo campo precisa ser validade, senão, o próximo campo Não deve ser validado.

 

Pensei aqui numa coisa assim:

if(document.gravatipos.elements[i].type=='radio')
{
        if(document.gravatipos.elements[i].value=='s')
   {
          if(document.gravatipos.elements[i.tabIndex+1].value=='')
         {
             alert("Campo obrigatório!");
             document.gravatipos.elements[i.tabIndex+1].focus();
             return (false);
         }
    }
}


Mas não funcionou

Eis a função completa:

 

function valida_cad_empresa2(form)
{
for (i=0;i<document.gravatipos.elements.length;i++)
{
 if (
 (document.gravatipos.elements[i].type == 'text') || 
 (document.gravatipos.elements[i].type == 'radio') || 
 (document.gravatipos.elements[i].type == 'textarea')
)
 {
 if(document.gravatipos.elements[i].type=='radio')
 {
       if(document.gravatipos.elements[i].value=='s')
   {
         if(document.gravatipos.elements[i.tabIndex+1].value=='')
 //if(document.getElementById('taxaValor_cad_empresas['+i+']').value=="")
 {
alert("Campo obrigatório!");
document.gravatipos.elements[i.tabIndex+1].focus();
return (false);
 }
}
 }
 else 
 {
 if(document.gravatipos.elements[i].name.substr(0,22)!='taxaValor_cad_empresas')
 {  
if(document.gravatipos.elements[i].value == "")
{
 alert("Campo obrigatório!");
 document.gravatipos.elements[i].focus();
 return (false);
}
 }
       }
 }
}
form.submit();
 }

 

 

Da forma abaixo até funcionou. Mas mesmo que o radio checkado não seja o de value 's', o campo ainda continua sendo validado.

 

 

function valida_cad_empresa2(form)
{
for (i=0;i<document.gravatipos.elements.length;i++)
{
 if (
 (document.gravatipos.elements[i].type == 'text') || 
 (document.gravatipos.elements[i].type == 'radio') || 
 (document.gravatipos.elements[i].type == 'textarea')
)
 {
 if(document.gravatipos.elements[i].type=='radio')
 {
alert(document.gravatipos.elements[i+2].name); 
        if(document.gravatipos.elements[i].value=='s')
   {
          if(document.gravatipos.elements[i+2].value=='')
 {
alert("Campo obrigatório!");
document.gravatipos.elements[i+2].focus();
return (false);
 }
}
 }
 else 
 {
 if(document.gravatipos.elements[i].name.substr(0,22)!='taxaValor_cad_empresas')
 {
if(document.gravatipos.elements[i].value == "")
{
 alert("Campo obrigatório!");
 document.gravatipos.elements[i].focus();
 return (false);
}
 }
        }
 }
}
form.submit();
 }

 

 

Se eu informei que o campo só será validado se e somente se:

 

 

 

if(document.gravatipos.elements[i].value=='s')

Porque mesmo sendo = 'n' esta validando também?

 

Estranho:

 <label  class='passo2'>Taxa de Serviço?</label> :
 
<input type="radio" name="taxa_cad_empresas[<?php echo $servico;?>]" id="taxa_cad_empresass[<?php echo $servico;?>]" value="s" onclick="abre('taxa[<?php echo $servico;?>]')" /> Sim      
 
<input type="radio" name="taxa_cad_empresas[<?php echo $servico;?>]" id="taxa_cad_empresasn[<?php echo $servico;?>]" value="n" onclick="fecha('taxa[<?php echo $servico;?>]')"  checked="checked" /> Não<br />

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou

 

  if(document.gravatipos.elements[i+2].value=='s')

Compartilhar este post


Link para o post
Compartilhar em outros sites

O í esta certo.

Já testei e ele retorna o name correto do campo.
Mas para ambos os radio buttons de mesmo name (taxa_cad_empresas[3]), o value esta retornando o mesmo.

 

Esta parecendo que o JavaScript não esta aceitando essa formatação de name em forma de array taxa_cad_empresas. Será?

 

Função modificada:

 

function valida_cad_empresa2(form)
{
for (i=0;i<document.gravatipos.elements.length;i++)
{
 if (
 (document.gravatipos.elements[i].type == 'text') || 
 (document.gravatipos.elements[i].type == 'radio') || 
 (document.gravatipos.elements[i].type == 'textarea')
)
 {
 if(document.gravatipos.elements[i].type=='radio')
 {
alert(document.gravatipos.elements[i].value);
       if(document.gravatipos.elements[i].value=='s')
   {
         if(document.gravatipos.elements[i+2].value=='')
 {
alert("Campo obrigatório!");
document.gravatipos.elements[i+2].focus();
return (false);
 }
}
 }
 else 
 {
 if(document.gravatipos.elements[i].name.substr(0,22)!='taxaValor_cad_empresas')
 {  
if(document.gravatipos.elements[i].value == "")
{
 alert("Campo obrigatório!");
 document.gravatipos.elements[i].focus();
 return (false);
}
 }
       }
 }
}
form.submit();
 }


Acho que descobri o problema.

 

Como fazer para ter a propriedade name do radio button em forma de array?

 

Tipo

 

name="nome[0][0]"

 

Parece que o JavaScript lê o primeiro [0] e decosidera o retante.

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.