Carlos Rocha Posted July 15, 2011 Report Share Posted July 15, 2011 (edited) 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) { ... Edited July 15, 2011 by Carlos Rocha Quote Link to comment Share on other sites More sharing options...
0 Carlos Rocha Posted July 15, 2011 Author Report Share Posted July 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> Quote Link to comment Share on other sites More sharing options...
Question
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 :
Edited by Carlos RochaLink to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.