Carlos Rocha Postado Julho 15, 2011 Denunciar Share Postado Julho 15, 2011 (editado) Pessoal.Tenho um form que carrega seus campos dinamicamente. Ou seja, dependendo do que chega do banco, um campo "nome", por exemplo, pode ter N vezes.Então, o jeito foi fazer assim: {$i} [nome]. Desta forma terei um array com N campos nome.Mas ai surge uma dificuldade. Como saber, antes de submeter o form, em JavaScript, quantos campos nome eu terei dinamicamente?Isso é tudo que eu preciso saber.Dai, faço as validações com o :for (i=0;i<quantos_campos;i++) { if(document.GetElementById(i+"nome_do_campo").value==0) { ... Editado Julho 15, 2011 por Carlos Rocha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Carlos Rocha Postado Julho 15, 2011 Autor Denunciar Share Postado Julho 15, 2011 Olha o que aconteceu:Fiz assim:<script language="javascript"> function validatodos() { for (i=0; i<((document.adcionatodos.elements.length-1)/6); i++) { if (document.getElementById(i+"[novo_preco]").value =="") { alert("Preencha o campo Preço: campo obrigatório!!!"); document.getElementById(i+"novo_preco").focus(); return (false); } if (document.getElementById(i+"[novo_imposto]").value =="") { alert("Preencha o campo Imposto: campo obrigatório!!!"); document.getElementById(i+"novo_imposto").focus(); return (false); } if (document.getElementById(i+"[marcado]").checked == true && document.getElementById(i+"[condicao]").value =="#") { alert("Você Selecionou o produto mas não escolheu a condição!!!"); document.getElementById(i+"[marcado]").focus(); return (false); } } document.getElementById("adcionatodos").submit(); } </script> Acontece, que ele não esta conseguindo mostrar o foco no select do campo não marcado. Como selecinar isso? O form ficou assim: <tbody><tr><td colspan="10" align="center"><h3>Produtos de: Malta S/A</h3></td></tr> <tr><td colspan="10" align="center"><a href="?acao=mostra_fornecedores">Escolher outro fornecedor</a></td></tr> <tr> <td align="center">Foto</td> <td align="center">Produto</td> <td align="center">Grupo</td> <td align="center">Descrição</td> <td align="center">Qtde.<br>na caixa</td> <td align="center">Preço</td> <td align="center">Imposto (%)</td> <td align="center">Marcar para<br>todos os ítens</td> <td align="center">Posição</td> <td align="center">Adicionar</td> </tr> <form action="carrinho.php?op=adicionar" name="adcionatodos" id="adcionatodos" method="post"></form><input name="0[id_prod]" id="0[id_prod]" value="3" type="hidden"> <input name="id_fornece" id="id_fornece" value="2" type="hidden"> <tr> <td align="center"><img src="../img/sem_foto.png" alt="Sem foto" border="0" width="50"></td> <td align="let">Cevada</td> <td align="let">Produtos de Padaria</td> <td align="center"><a href="?acao=saibamais&id=3&id_fornece=2"><img src="../img/saiba_mais.png" alt="Saiba Mais" border="0"></a></td> <td align="right">15 </td> <td align="left"> R$ <input size="4" name="0[novo_preco]" id="0[novo_preco]" value="3.30" style="text-align: right;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"></td> <td align="center"> <input size="4" name="0[novo_imposto]" id="0[novo_imposto]" value="0" style="text-align: center;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"> %</td> <td align="center"><input name="0[marcado]" id="0[marcado]" type="checkbox"></td> <td align="center" valign="middle"> <select name="0[condicao]" id="0[condicao]"> <option value="#">Condição</option> <option value="1">Complemento</option> <option value="2">Encarte</option> </select> </td> <td align="center"> <a href="#" onclick="validaprodutoadcionado('adcionatodos','0[novo_preco]','0[novo_imposto]','0[condicao]'); this.href='carrinho.php?op=adicionar&id_produto=3&novo_preco='+document.getElementById('0[novo_preco]').value+'&id_fornece=2&novo_imposto='+document.getElementById('0[novo_imposto]').value+'&condicao='+document.getElementById('0[condicao]').value"> Enviar </a> </td> </tr><input name="1[id_prod]" id="1[id_prod]" value="4" type="hidden"> <input name="id_fornece" id="id_fornece" value="2" type="hidden"> <tr> <td align="center"><img src="../img/sem_foto.png" alt="Sem foto" border="0" width="50"></td> <td align="let">Farinha</td> <td align="let">Produtos de Padaria</td> <td align="center"><a href="?acao=saibamais&id=4&id_fornece=2"><img src="../img/saiba_mais.png" alt="Saiba Mais" border="0"></a></td> <td align="right">24 </td> <td align="left"> R$ <input size="4" name="1[novo_preco]" id="1[novo_preco]" value="2.50" style="text-align: right;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"></td> <td align="center"> <input size="4" name="1[novo_imposto]" id="1[novo_imposto]" value="0" style="text-align: center;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"> %</td> <td align="center"><input name="1[marcado]" id="1[marcado]" type="checkbox"></td> <td align="center" valign="middle"> <select name="1[condicao]" id="1[condicao]"> <option value="#">Condição</option> <option value="1">Complemento</option> <option value="2">Encarte</option> </select> </td> <td align="center"> <a href="#" onclick="validaprodutoadcionado('adcionatodos','1[novo_preco]','1[novo_imposto]','1[condicao]'); this.href='carrinho.php?op=adicionar&id_produto=4&novo_preco='+document.getElementById('1[novo_preco]').value+'&id_fornece=2&novo_imposto='+document.getElementById('1[novo_imposto]').value+'&condicao='+document.getElementById('1[condicao]').value"> Enviar </a> </td> </tr><input name="2[id_prod]" id="2[id_prod]" value="6" type="hidden"> <input name="id_fornece" id="id_fornece" value="2" type="hidden"> <tr> <td align="center"><img src="../img/sem_foto.png" alt="Sem foto" border="0" width="50"></td> <td align="let">Pão</td> <td align="let">Produtos de Padaria</td> <td align="center"><a href="?acao=saibamais&id=6&id_fornece=2"><img src="../img/saiba_mais.png" alt="Saiba Mais" border="0"></a></td> <td align="right">12 </td> <td align="left"> R$ <input size="4" name="2[novo_preco]" id="2[novo_preco]" value="3.20" style="text-align: right;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"></td> <td align="center"> <input size="4" name="2[novo_imposto]" id="2[novo_imposto]" value="0" style="text-align: center;" onkeypress="return(MascaraMoeda(this,'','.',event))" type="text"> %</td> <td align="center"><input name="2[marcado]" id="2[marcado]" type="checkbox"></td> <td align="center" valign="middle"> <select name="2[condicao]" id="2[condicao]"> <option value="#">Condição</option> <option value="1">Complemento</option> <option value="2">Encarte</option> </select> </td> <td align="center"> <a href="#" onclick="validaprodutoadcionado('adcionatodos','2[novo_preco]','2[novo_imposto]','2[condicao]'); this.href='carrinho.php?op=adicionar&id_produto=6&novo_preco='+document.getElementById('2[novo_preco]').value+'&id_fornece=2&novo_imposto='+document.getElementById('2[novo_imposto]').value+'&condicao='+document.getElementById('2[condicao]').value"> Enviar </a> </td> </tr> <tr> <td colspan="8" align="center" height="50" valign="middle"> <input onclick="return validatodos();" value="Enviar todos os ítens" type="button"> </td> </tr> </tbody> Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Carlos Rocha
Pessoal.
Tenho um form que carrega seus campos dinamicamente. Ou seja, dependendo do que chega do banco, um campo "nome", por exemplo, pode ter N vezes.
Então, o jeito foi fazer assim: {$i} [nome]. Desta forma terei um array com N campos nome.
Mas ai surge uma dificuldade. Como saber, antes de submeter o form, em JavaScript, quantos campos nome eu terei dinamicamente?
Isso é tudo que eu preciso saber.
Dai, faço as validações com o :
Editado por Carlos RochaLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.