Ir para conteúdo

Arquivado

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

Carcleo

Quantos campos antes do submit();

Recommended Posts

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)
{
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dae brother, seguinte ao meu ver voce quer validar o campo se estiver ok submita se nao cancela?

 

Bom se for isso use sua funcao no onsubmit. Caso nao valide corretamente como desejas de um return false.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiquei confuso, tipo voce quer validar se os checkbox estao marcados ou desmarcados???

E se estiverem marcados fas oq?

E se estiverem desmarcados fas oq?

 

Aguardo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não!

 

Olha só:

a parte das checkboxes esta resolvida. Meu problema é o focus() no type=text.

O focus() no select opition esta sendo feito normal. mas no typetext, embora a validação esteje sendo feita, não esta acontecendo.

Segue o codigo:

// JavaScript Document
function validatodos()
{
if(qtdChecados()==0)
{
	alert("Vcê não marcou nenhum produto!");
	return (false);
}
else {
	for (i=0; i<((document.adcionatodos.elements.length-1)/6); i++)
	{   

	  if (document.getElementById(i+"[marcado]").checked == true)
	  {

		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+"[condicao]").value =="#")
		{
				alert("Você Selecionou o produto mas não escolheu a condição!!!");
				document.getElementById(i+"[condicao]").focus();
				return (false);
		}
	  }	
	}
 document.getElementById("adcionatodos").submit();
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta entendo,

 

Ta dando algum erro JS?

Outra coisa o submit esta cancelando mesmo neh?

Ja deu um alert e viu se o i+o name padrao do seus ID esta correto?

 

...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nõ tem erro de js

So não mostra o focus no campo que type text.

Mas funciona normal.

 

O fato de e validação esta sendo feita, ratifica a questão de que os nomes dos campos estão setados corretamente na variavel i(acho)

Compartilhar este post


Link para o post
Compartilhar em outros sites

}

document.getElementById("adcionatodos").submit();

}

 

Impressao minha ou voce sempre antes de terminar o else da um submit no form?

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.