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

Validação dinamica


Carlos Rocha

Pergunta

Pessoal, Eis a minha função de validação
function valida_cad_empresa2(form)
{
for (i=0;i<document.gravatipos.elements.length;i++)
{
 if (document.gravatipos.elements[i].type == 'radio')
 {
if(document.gravatipos.elements[i][0].checked==true)
{
if(document.gravatipos.elements[i+1].value == "")
{
 alert("Campo obrigatório!");
 document.gravatipos.elements[i+1].focus();
 return (false); 
}
 
}
 }
 else
 {
if (
   (document.gravatipos.elements[i].type == 'text') || 
   (document.gravatipos.elements[i].type == 'textarea')
  )
{
 if(document.gravatipos.elements[i].value == "")
 {
alert("Campo obrigatório!");
document.gravatipos.elements[i].focus();
return (false); 
 }
}
 }
}
form.submit();
}
Acontece que eu tenho um formulário que vem do banco com vérios campos text, um campo textarea e um dois radio buttons com o mesmo name.
Após esses radio buttons (campos para selecionar se tem ou não taxa para pagar), existe um campo texto.
Mas, a validação desse campo texto será obrigatória por causa da validação dinâmica.
Existe uma forma de eu pular a validação desse campo em específico caso o radio button com valor 'n' estiver marcado?
Eis o html(php incluso)
      <form action="?acao=gravatipos&ultimo_id=<?php echo $ultimo_id; ?>" method="post" name="gravatipos" id="gravatipos">
        <h2><br />Cadastro de empresas (Passo 2/2 - Cadastro de Tipos)</h2><br />
<?php     
         $contador2=0;
$string_array = implode('|', $_POST["servico"]);
foreach($_POST["servico"] as $servico)
{
 $nomeServicoString="SELECT nome FROM servicos WHERE id=".$servico; 
 $nomeServicoQuery=$conexao->Query($nomeServicoString);
 list($servicoNome)=$nomeServicoQuery->fetch_row();
 echo "<h2><label style='color:#F00'>Tipos para o servi&ccedil;o: ".$servicoNome."</label></h2><br /><br />";
?>
  <label  class='passo2'>Diferenciais</label> : <textarea name="diferenciais_cad_empresas[<?php echo $servico;?>]" id="diferenciais_cad_empresas[<?php echo $servico;?>]" cols="50" rows="2"></textarea><br />
  
  <label  class='passo2'>Inclusos</label> : <textarea name="inclusos_cad_empresas[<?php echo $servico;?>]" id="inclusos_cad_empresas[<?php echo $servico;?>]" cols="50" rows="2"></textarea><br />
  
  <label  class='passo2'>Formas de Pagamento</label> : <textarea name="pgto_cad_empresas[<?php echo $servico;?>]" id="pgto_cad_empresas[<?php echo $servico;?>]" cols="50" rows="2"></textarea><br /><br />
  
  <label  class='passo2'>Taxa de Servi&ccedil;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 &nbsp; &nbsp; &nbsp;<input type="radio" name="taxa_cad_empresas[<?php echo $servico;?>]" id="taxa_cad_empresasn[<?php echo $servico;?>]" checked="checked" value="n"  onclick="fecha('taxa[<?php echo $servico;?>]')" /> N&atilde;o<br />
  
  <div id="taxa[<?php echo $servico;?>]" style="display:none">
      <label  class='passo2'>Valor </label> : <input type="text" name="taxaValor_cad_empresas[<?php echo $servico;?>]" id="taxaValor_cad_empresas[<?php echo $servico;?>]" value="" class="real"/>
  </div><br />
  
  <label  class='passo2'>Observa&ccedil;&atilde;o </label> : <textarea name="observa_cad_empresas[<?php echo $servico;?>]" id="observa_cad_empresas[<?php echo $servico;?>]"  cols="50" rows="2"></textarea><br /><br />
 
   <fieldset style="width:650px">
    <legend>Tipo</legend>
    <label class='passo2'>Nome Tipo</label> : <input type='text' id='nomeTipo[<?php echo $servico;?>][0]' name='nomeTipo[<?php echo $servico;?>][0]'><br /> 
    <label class='passo2'>Qtde Pessoas</label> : <input type='text' onKeyPress="BloqueiaLetras();" id='qtdePessoas[<?php echo $servico;?>][0]' name='qtdePessoas[<?php echo $servico;?>][0]'><br />
    <label class='passo2'>Preço</label> : <input type='text' class="real" id='preco[<?php echo $servico;?>][0]' name='preco[<?php echo $servico;?>][0]'><br />
    <label class='passo2'>Descrição</label> : <textarea id='descricao[<?php echo $servico;?>][0]' name='descricao[<?php echo $servico;?>][0]' cols='40' rows='5'></textarea><br />
  </fieldset>
  <div id="div<?php echo $servico;?>"><input type="button" value="Adicionar campos" onClick="addCampos(this.parentNode.id, <?php echo $servico;?>)" />
  </div><br><br>
<?php 
          $contador2++;
}
?>
 
<br><br><input type="button" value="Cadastrar" onClick="valida_cad_empresa2(this.form)" />
         </form>
Editado por Carlos Rocha
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Tentei de uma outra forma mas quando chega no campo ele para:

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')
   {
 campo='taxaValor_cad_empresas['+i+']';
 alert(campo);
 
 if(document.getElementById('taxaValor_cad_empresas['+i+']').value!="")
 {
alert("Campo obrigatório!");
document.gravatipos.elements[i+1].focus();
return (false); 
 } 
}
 }
 else 
 {
 campo='taxaValor_cad_empresas['+i+']';
 alert(campo);
 if(document.getElementById(campo).value!="")
 { 
if(document.gravatipos.elements[i].value == "")
{
 alert("Campo obrigatório!");
 document.gravatipos.elements[i].focus();
 return (false); 
}
 }
        }
 }
}
form.submit();
 }
Editado por Carlos Rocha
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...