Ir para conteúdo

Arquivado

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

Carcleo

Arra Bidimencional. Pegar value

Recommended Posts

Pessoal, tenho a seguinte função:

function valida_cad_empresa2(form,string_array)
{

    var servico = new Object();
    servico = string_array.split('|');


   for (var key in servico)
   {
       alert(key);
       for (key2 in document.getElementsByName('nomeTipo['+key+']'))
       {
           alert(key2);
          if (document.getElementsByName('nomeTipo['+key+']['+key2+']').value =="")
         {
              alert("Preencha Nome do Tipo: campo obrigatório!");
              document.getElementsByName('nomeTipo['+key+']['+key2+']').focus();
              return (false);
         }
    }

}

A idéia é pegar o valor do campo
<input type="text" id="nomeTipo0" name="nomeTipo[2][0]" autocomplete="off">

o
..nomeTipo[2]....

é variavél conforme temos ids diferentes de serviços vindos de um loop numa query ao banco.
Exemplo:
..nomeTipo[2], nomeTipo[5], nomeTipo[8]....

E o segundo parâmetro [0], vem de um loop JS com a finalidade de criar campos adicionais para cada nomeTipo[] que houver.
Minha função não esta pegando o value
Como fazer para validar?
que vem do formulário.
Eis o form:
      <form action="?acao=gravatipos&ultimo_id=<?php echo $ultimo_id; ?>" method="post" name="gravatipos" id="gravatipos">
        <h2><br />Cadastro de empresas (Passo 2/2)<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 " <label>Tipos para o serviço: ".$servicoNome."</label><br />";
?>
  <fieldset>
    <legend>Tipo</legend>
    <label class='passo2'>Nome Tipo: </label><input type='text' id='nomeTipo0' name='nomeTipo[<?php echo $servico;?>][0]'><br />
    <label class='passo2'>Qtde Pessoas: </label><input type='text' onkeypress="BloqueiaLetras();" id='qtdePessoas0' name='qtdePessoas[<?php echo $servico;?>][0]'><br />
    <label class='passo2'>Preço: </label><input type='text' class="real" id='preco0' name='preco[<?php echo $servico;?>][0]'><br />
    <label class='passo2'>Descrição: </label>
    <textarea id='descricao0' name='descricao[<?php echo $servico;?>][0]'></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,'<?php echo $string_array;?>')" />
         </form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo,

 

A função getElementsByName retorna uma NodeList, que é um array de elementos,

 

 

if (document.getElementsByName('nomeTipo['+key+']['+key2+']').value =="")

 

o seu código deveria estar como, por exemplo, o abaixo:

 

 

if (document.getElementsByName('nomeTipo['+key+']['+key2+']')[0].value =="")

 

você pode consultar um exemplo prático no link abaixo:

 

Obs: Você vai ter que alterar todas as chamadas de "getElementsByName" que estiverem erradas;

 

http://jsfiddle.net/S5xCR/

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.