Netanias Postado Janeiro 24, 2008 Denunciar Share Postado Janeiro 24, 2008 (editado) Olá. gostaria de saber como resolver esse problema...Tenho três grupos de Radiobutton e preciso validar eles... É uma loja virtual...o código tá mais ou menos assim...<form name="form1" method="post" action=""> <input type="radio" name="grupo1" value="1">Opção 1<br> <input type="radio" name="grupo1" value="2">Opção 2<br> <input type="radio" name="grupo1" value="3">Opção 3</p> <p> <input type="radio" name="grupo2" value="1">Opção 1<br> <input type="radio" name="grupo2" value="2">Opção 2<br> <input type="radio" name="grupo2" value="3">Opção 3</p> <p> <input type="radio" name="grupo3" value="1">Opção 1<br> <input type="radio" name="grupo3" value="2">Opção 2<br> <input type="radio" name="grupo3" value="3">Opção 3</p> </form>como fazer para enviar o form somente depois de selecionar uma opção em cada grupo?Vlw! Editado Janeiro 24, 2008 por fercosmig Utilize as tags de código, facilitam a visualização. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fercosmig Postado Janeiro 24, 2008 Denunciar Share Postado Janeiro 24, 2008 Como os 3 grupos são obrigatórios, deixa a 1ª opção de cada grupo pré-selecionada, bem mais simples Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Netanias Postado Janeiro 24, 2008 Autor Denunciar Share Postado Janeiro 24, 2008 É uma loja virtual... Seu eu deixar as três opções já pré-selecionadas, algúm vacilão... vai comprar um produto... sem perceber qual opção ele escolheu... aí depois dá o maior problema... entendeu? por isso preciso que ele fique sem ser selecionado... pro cara ter que escolher... que aí ele escolhe correto... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fercosmig Postado Janeiro 24, 2008 Denunciar Share Postado Janeiro 24, 2008 http://scriptbrasil.com.br/forum/index.php...mp;#entry356253 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alexandrekirpa Postado Janeiro 24, 2008 Denunciar Share Postado Janeiro 24, 2008 tudo bem que fercosmig já deu uma resposta, mas pra todo caso:taí um script simples:funfando de boa no firefox 2.0, IE 6 e opera 9.<script type="text/javascript"> function checkForm(){ var a1a = document.getElementById("1"); var a2a=document.getElementById("2"); var a3a=document.getElementById("3"); if(a1a.checked || a2a.checked || a3a.checked){ checkForm2(); }else{ alert('Tem algum campo não checado'); } } function checkForm2(){ var a4a=document.getElementById("4"); var a5a=document.getElementById("5"); var a6a=document.getElementById("6"); if(a4a.checked || a5a.checked || a6a.checked){ checkForm3(); }else{ alert('Tem algum campo não checado'); } } function checkForm3(){ var a7a=document.getElementById("7"); var a8a=document.getElementById("8"); var a9a=document.getElementById("9"); if(a7a.checked || a8a.checked || a9a.checked){ //ação que acontece se pelo menos um radio em cada parágrafo estiver checado (ação em caso positivo) document.forms[0].submit(); }else{ alert('Tem algum campo não checado'); } } </script> <form name="form1" method="post" action=""> <input id="1" type="radio" name="grupo1" value="1">Opção 1<br> <input id="2" type="radio" name="grupo1" value="2">Opção 2<br> <input id="3" type="radio" name="grupo1" value="3">Opção 3</p> <p> <input id="4" type="radio" name="grupo2" value="1">Opção 1<br> <input id="5" type="radio" name="grupo2" value="2">Opção 2<br> <input id="6" type="radio" name="grupo2" value="3">Opção 3</p> <p> <input id="7" type="radio" name="grupo3" value="1">Opção 1<br> <input id="8" type="radio" name="grupo3" value="2">Opção 2<br> <input id="9" type="radio" name="grupo3" value="3">Opção 3</p> <br> <input type="button" value="Enviar" OnClick="checkForm()"> </form> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Netanias Postado Janeiro 24, 2008 Autor Denunciar Share Postado Janeiro 24, 2008 Alexandre... Mas tanto os grupos quantos as opções podem variar de quantidade...Por exemplo, o grupo 1 em um produto pode ter 2 opções.. enquanto no outro produto pode ter 5 opções...no grupo dois também vai variar dependendo do produto da loja...e assim diante....entendeu?vlw... e desculpa a burridade... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Netanias Postado Janeiro 24, 2008 Autor Denunciar Share Postado Janeiro 24, 2008 (editado) cara... nada ainda.... já testei também....<script language="JavaScript"> function ValidaOpcoesVoltagem(form) { if (document.FormCompraProduto.IDVol.checked == true) { ValidaOpcoesTamanho(form); return true; } else { alert('Necessário informar a Voltagem!'); return false; } } function ValidaOpcoesTamanho(form) { if (document.FormCompraProduto.IDVol.checked == true || document.FormCompraProduto.IDTam.checked == true) { ValidaOpcoesCor(form); return true; } else { alert('Necessário informar o Tamanho!'); return false; } } function ValidaOpcoesCor(form) { if (document.FormCompraProduto.IDVol.checked == true || document.FormCompraProduto.IDTam.checked == true || document.FormCompraProduto.IDCor.checked == true) { document.FormCompraProduto.submit(form); return true; } } aí no form coloquei assim.... <form action="../sacola/adiciona_produto.asp" method="get" name="FormCompraProduto" onClick="return ValidaOpcoesVoltagem(this);"> ........ ( os grupos de radio são.. IDVol, IDTam e IDCor... mas as opções de cada um desses grupos pode mudar... ) </form>O erro é esse...Se o cara enviar o form sem selecionar IDVol.. dá o alerta certinho...Se eu marcar o IDVol e tentar enviar, não era pra ir... era pra dar o alert.. mas dá é erro...entendeu? Editado Janeiro 26, 2008 por fercosmig Utilize as tags de código, facilitam a visualização. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alexandrekirpa Postado Janeiro 24, 2008 Denunciar Share Postado Janeiro 24, 2008 cara to pesquisando um jeito, mas eu acho que você vai ter que adaptar o script para cada página. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Netanias Postado Janeiro 24, 2008 Autor Denunciar Share Postado Janeiro 24, 2008 (editado) posso mandar o arqruivo pra tu dá uma verificada?<script language="JavaScript"> function ValidaOpcoesVoltagem(form) { if (document.FormCompraProduto.IDVol.checked == true) { ValidaOpcoesTamanho(form); } else { alert('Necessário informar a Voltagem!'); return false; } } function ValidaOpcoesTamanho(form) { if (document.FormCompraProduto.IDVol.checked == true || document.FormCompraProduto.IDTam.checked == true) { ValidaOpcoesCor(form); } else { alert('Necessário informar o Tamanho!'); return false; } } function ValidaOpcoesCor(form) { if (document.FormCompraProduto.IDVol.checked == true || document.FormCompraProduto.IDTam.checked == true || document.FormCompraProduto.IDCor.checked == true) { document.FormCompraProduto.submit(form); } } </script> <form action="../sacola/adiciona_produto.asp" method="get" name="FormCompraProduto" onClick="return ValidaOpcoesVoltagem(this);"> <table width="340" border="0" cellspacing="0" cellpadding="0"> <!--DWLayoutTable--> <tr> <td width="340" height="28" valign="top" class="pagina-nome-produto"><%=(Prod.Fields.Item("Produto").Value)%> <input name="IDProduto" type="hidden" value="<%=Prod("Id")%>"> </td> </tr> </table> <table width="340" border="0" cellspacing="0" cellpadding="0"> <!--DWLayoutTable--> <% If Int(Prod("Promocao")) > 0 Then %> <tr> <td width="39" height="20" valign="bottom">De</td> <td width="301" valign="bottom" class="valor-de"><%= FormatCurrency((Prod.Fields.Item("Valor").Value), -1, -2, -2, -2) %></td> </tr> <tr> <td height="30" valign="middle">Por</td> <td valign="top" class="pagina-valor-produto"><%= FormatCurrency((Prod.Fields.Item("Promocao").Value), -1, -2, -2, -2) %></td> </tr> <% Else %> <tr> <td height="30" valign="middle">Por</td> <td valign="top" class="pagina-valor-produto"><%= FormatCurrency((Prod.Fields.Item("Valor").Value), -1, -2, -2, -2) %></td> </tr> <% End If %> <tr> <td height="15"></td> <td></td> </tr> </table> <table width="340" border="0" cellspacing="0" cellpadding="0"> <!--DWLayoutTable--> <tr> <td width="90" valign="top"> <% If Prod("IdVoltagem") <> "" Then %> <table width="90" border="0" cellspacing="0" cellpadding="0"> <!--DWLayoutTable--> <tr> <td width="96" height="14" valign="top" class="secao-titulo-cor-tamanho">Voltagem</td> </tr> <tr> <td height="5"></td> </tr> <tr> <td height="25" valign="top"> <% OpVol = Prod("IdVoltagem") MostraVol = Split(OpVol, ", ") For I = LBound(MostraVol) to UBound(MostraVol) %> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="20" height="25" valign="middle"> <input type="radio" name="IDVol" value="<%=MostraVol(I)%>"></td> <td width="76" valign="middle"><%=Response.Write(" ")%><%=MostraVol(I)%></td> </tr> </table> <% next %> </td> </tr> </table> <br> <% Else %> <input name="IDVol" type="hidden" id="IDVol" value="0" checked> <% End If %> <% If Prod("IDTamanho") <> "" Then %> <table width="90" border="0" cellspacing="0" cellpadding="0"> <!--DWLayoutTable--> <tr> <td width="96" height="14" valign="top" class="secao-titulo-cor-tamanho">Tamanho</td> </tr> <tr> <td height="5"></td> </tr> <tr> <td height="25" valign="top"> <% OpTam = Prod("IdTamanho") MostraTam = Split(OpTam, ", ") For I = LBound(MostraTam) to UBound(MostraTam) %> <% Dim Tam Dim Tam_numRows Set Tam = Server.CreateObject("ADODB.Recordset") Tam.ActiveConnection = MM_compraextra_STRING Tam.Source = "SELECT * FROM tblLojaProdutoTamanho WHERE Id = " & MostraTam(I) Tam.CursorType = 0 Tam.CursorLocation = 2 Tam.LockType = 1 Tam.Open() Tam_numRows = 0 %> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="20" height="25" valign="middle"> <input type="radio" name="IDTam" value="<%=(Tam.Fields.Item("Id").Value)%>"></td> <td width="76" valign="middle"><%=Response.Write(" ")%><%=(Tam.Fields.Item("Tam").Value)%></td> </tr> </table> <% Tam.Close() Set Tam = Nothing %> <% next %> </td> </tr> </table> <% Else %> <input name="IDTam" type="hidden" id="IDTam" value="0" checked> <% End If %> </td> <td width="10"> </td> <td width="240" valign="top"> <% If Prod("IDCor") <> "" Then %> <table width="240" border="0" cellspacing="0" cellpadding="0"> <!--DWLayoutTable--> <tr> <td width="240" height="20" valign="top" class="secao-titulo-cor-tamanho">Cores disponíveis</td> </tr> <tr> <td height="5"></td> </tr> <tr> <td height="25" valign="top"> <% OpCor = Prod("IdCor") MostraCor = Split(OpCor, ", ") For I = LBound(MostraCor) to UBound(MostraCor) %> <% Dim Cor Dim Cor_numRows Set Cor = Server.CreateObject("ADODB.Recordset") Cor.ActiveConnection = MM_compraextra_STRING Cor.Source = "SELECT * FROM tblLojaProdutoCor WHERE Id = " & MostraCor(I) Cor.CursorType = 0 Cor.CursorLocation = 2 Cor.LockType = 1 Cor.Open() Cor_numRows = 0 %> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="20" height="25" valign="middle"> <input type="radio" name="IDCor" value="<%=(Cor.Fields.Item("Id").Value)%>"></td> <td width="30" align="center" valign="middle"><img src="../imagens_cores/<%=(Cor.Fields.Item("Mostra").Value)%>" alt="" width="20" height="15" border="0"></td> <td width="190" valign="middle"><%=(Cor.Fields.Item("Cor").Value)%></td> </tr> </table> <% Cor.Close() Set Cor = Nothing %> <% next %> </td> </tr> </table> <% Else %> <input name="IDCor" type="hidden" id="IDCor" value="0" checked> <% End If %> </td> </tr> <tr> <td colspan="3" height="15"></td> </tr> </table> <table width="340" border="0" cellpadding="0" cellspacing="0" class="table-espacador-topo-10-com-borda"> <!--DWLayoutTable--> <tr> <td width="190" height="40" align="right" valign="middle">Adicione este produto à sua<br>Sacola de Compras</td> <td width="10"> </td> <td width="140" valign="top"> <input type="image" class="link-preto" src="../_img/loja_botao_comprar.gif" alt="Comprar" width="140" height="40" border="0"> <input name="Valor" type="hidden" id="Valor" value="<% If Int(Prod("Promocao")) > 0 Then %><%=FormatCurrency(Prod("Promocao"), -1, -2, -2, -2) %><% Else %><%=FormatCurrency(Prod("Valor"), -1, -2, -2, -2) %><% End If %>"> <input name="Peso" type="hidden" id="Frete" value="<% If Prod("FreteGratis") = 1 Then %>0<% Else %><%=Prod("Peso") %><% End If %>"> </td> </tr> </table> <br> <br> <center> <table width="140" border="0" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr> <td width="140" valign="top"><a href="../interatividade/lista_presente.asp" class="link-pagina-lista-produto">Lista de Presente</a></td> </tr> <tr> <td height="5"></td> </tr> <tr> <td valign="top"><a href="../interatividade/lista_casamento.asp" class="link-pagina-lista-produto">Lista de Casamento</a></td> </tr> <tr> <td height="5"></td> </tr> <tr> <td valign="top"><a href="../interatividade/lista_desejos.asp" class="link-pagina-lista-produto">Lista de Desejos</a></td> </tr> </table> </center> </form> Editado Janeiro 26, 2008 por fercosmig Utilize as tags de código, facilitam a visualização. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alexandrekirpa Postado Janeiro 25, 2008 Denunciar Share Postado Janeiro 25, 2008 (editado) Cara você só vai precisar de adaptar um número (no script) em cada página: o número de grupos de rádio button (leia atentamente o script) e página.Não exclua nem modifique o objeto hidden que eu coloquei na pagina. (ele é essencial para a execução do script).não use para enviar o form um submit, use um button com as funções indicadas. Para cada grupo de radio voce vai precisar chamar a função checkRa('nomedogrupo') com o nome do grupo. Por final (ainda no botão) chame a checkGeral() e pronto. vai ficar simples.EDIT:Se quiser montar um a função que chama todas, também dá:function executa(){ checkRa('grupo1'); checkRa('grupo2'); checkRa('grupo3'); checkGeral(); } //ai é só chamar no button a função executa() //Codigo abaixo// <script type="text/Javascript"> //script feito para o Netanias. function checkRa(grupo){ obj=document.getElementById('hide'); radios=document.getElementsByName(grupo); sim=0; não=0; for(i=0;i<radios.length;i++){ if(radios[i].checked){ sim=sim-1+2; }else{ não=não-1+2; } } if(sim != '0'){ obj.value=obj.value -1+2; }else{ alert('existem campos não checados'); obj.value='0'; document.forms[0].reset(); } } function checkGeral(){ esca=document.getElementById('hide'); if(esca.value=='3'|| esca.value == 3){ //coloque (acima) onde está 3 e '3' o número de grupos de radios existentes na página document.forms[0].submit(); alert('dados enviados'); } } </script> <form name="form1" method="post" action=""> <input id="1" type="radio" name="grupo1" value="1">Opção 1<br> <input id="2" type="radio" name="grupo1" value="2">Opção 2<br> <input id="3" type="radio" name="grupo1" value="3">Opção 3</p> <p> <input id="4" type="radio" name="grupo2" value="1">Opção 1<br> <input id="5" type="radio" name="grupo2" value="2">Opção 2<br> <input id="6" type="radio" name="grupo2" value="3">Opção 3</p> <p> <input id="7" type="radio" name="grupo3" value="1">Opção 1<br> <input id="8" type="radio" name="grupo3" value="2">Opção 2<br> <input id="9" type="radio" name="grupo3" value="3">Opção 3</p> <br> <input type="button" value="Enviar" onclick="checkRa('grupo1');checkRa('grupo3');checkRa('grupo3'); checkGeral()"> <!--Observe que acima você terá que chamar uma função para cada grupo de radios e no fim colocar a função checaGeral() !--> </form> <!-- Objeto hidden (essencial para o funcionamento do script !--> <input type="hidden" id="hide" value="0"> Editado Janeiro 25, 2008 por Alexandrekirpa Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 André Dario Postado Fevereiro 10, 2009 Denunciar Share Postado Fevereiro 10, 2009 Cara seu script salvou minha pele demais, estava pesquisando a 2 dias e não achava nada que u pudesse moldar a minha situação, porém ele tem um erro, que eu como iniciante total, não consigo resolver.que é mesmo quando aparece o alert avisando que há campos sem resposta, acaba executando o submit,vou postar abaixo pra você ver:O que devo fazer?function checkForm13(){ var a61a = document.getElementById("61"); var a62a=document.getElementById("62"); var a63a=document.getElementById("63"); var a64a=document.getElementById("64"); if(a61a.checked || a62a.checked || a63a.checked || a64a.checked){ checkForm14(); }else{ alert('Há perguntas sem resposta, por favor preencha todas'); return false; } } function checkForm14(){ var a65a=document.getElementById("65"); var a66a=document.getElementById("66"); var a67a=document.getElementById("67"); var a68a=document.getElementById("68"); if(a65a.checked || a66a.checked || a67a.checked || a68a.checked){ //ação que acontece se pelo menos um radio em cada parágrafo estiver checado (ação em caso positivo) document.forms[0].submit(); }else{ alert('Há perguntas sem resposta, por favor preencha todas'); return false; } } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Netanias
Olá. gostaria de saber como resolver esse problema...
Tenho três grupos de Radiobutton e preciso validar eles... É uma loja virtual...
o código tá mais ou menos assim...
como fazer para enviar o form somente depois de selecionar uma opção em cada grupo?
Vlw!
Editado por fercosmigUtilize as tags de código, facilitam a visualização.
Link para o comentário
Compartilhar em outros sites
10 respostass 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.