Formulário Validação - Radio Button

865 views
Skip to first unread message

Celso Ricardo

unread,
Jun 19, 2013, 12:48:53 AM6/19/13
to ph...@googlegroups.com

Bom dia pessoal.

 

Estou tentando fazer um formulário que dever ser validado o radio button até que quase consegui só que quase não existe em informática vim pedir ajuda aos colegas para tentar resolver isso.

 

Acontece que tenho 2 radio button que ao deixar em branco ou seja sem resposta o script faz a validação através de uma janela Java script “um alert”.

 

Após aparecer este alert gostaria que voltasse para o formulário para que o usuário pudesse corrigir o que está faltando e é justamente nisso que não estou conseguindo fazer.

 

O formulário está seguindo em frente.

 

Abaixo está o código do mesmo:

 

<!DOCTYPE html>

<html>

    <head>

        <title>Questionário</title>    

        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

                <link href="css/validate.css" type="text/css" media="screen" rel="stylesheet" />

               

                <script src="js/jquery.min.js" type="text/javascript"></script>

        <script src="js/jquery.validate.js" type="text/javascript"></script>

               

                <script>

                               $(document).ready(function(){

                               $("#enviar").click(function(){

                                       if( $("#quiz input[name='questao_1_resposta']:radio").is(':checked')) { 

                                               //alert("Está ativado"); 

                                       } else { 

                                               alert("A Pergunta de número 1 não foi respondida");

                                                      

                                       }

 

                                       if( $("#quiz input[name='questao_2_resposta']:radio").is(':checked')) { 

                                               //alert("Está ativado"); 

                                       } else { 

                                               alert("A Pergunta de número 2 não foi respondida");

                                       }

                                      

                               });

                        });

                </script>

               

                <!--[if lte IE 7]>

                <link href="css/validate_ie7.css" type="text/css" media="screen" rel="stylesheet" />

                <![endif]-->      

    </head>

    <body>

       

        <div id="wrap">

 

            <form action="#" method="post" id="quiz" class="validade">

                                       <ol>

                                      

                                               <li>

                                              

                                                       <h3>É capaz de manusear seus próprios remédios?</h3>

                                                      

                                                         <div>

                                                               <input type="radio" name="questao_1_resposta" id="questao_1_resposta-A" value="0" />

                                                               <label for="questao_1_resposta-A">A) Normal. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_1_resposta" id="questao_1_resposta-B" value="1" />

                                                               <label for="questao_1_resposta-B">B) Faz, com dificuldade. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_1_resposta" id="questao_1_resposta-C" value="2" />

                                                               <label for="questao_1_resposta-C">C) Necessita de ajuda. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_1_resposta" id="questao_1_resposta-D" value="3" />

                                                               <label for="questao_1_resposta-D">D) Não é capaz. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_1_resposta" id="questao_1_resposta-E" value="0" />

                                                               <label for="questao_1_resposta-E">E) Nunca o fez, mas poderia fazê-lo. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_1_resposta" id="questao_1_resposta-F" value="1" />

                                                               <label for="questao_1_resposta-F">F) Nunca o fez e agora teria dificuldade.</label>

                                                       </div>

                                               </li>

                                              

                                                                          <li>

                                              

                                                       <h3>É capaz de manusear seus próprios remédios?</h3>

                                                      

                                                         <div>

                                                               <input type="radio" name="questao_2_resposta" id="questao_2_resposta-A" value="0" />

                                                               <label for="questao_2_resposta-A">A) Normal. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_2_resposta" id="questao_2_resposta-B" value="1" />

                                                               <label for="questao_2_resposta-B">B) Faz, com dificuldade. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_2_resposta" id="questao_2_resposta-C" value="2" />

                                                               <label for="questao_2_resposta-C">C) Necessita de ajuda. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_2_resposta" id="questao_2_resposta-D" value="3" />

                                                               <label for="questao_2_resposta-D">D) Não é capaz. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_2_resposta" id="questao_2_resposta-E" value="0" />

                                                               <label for="questao_2_resposta-E">E) Nunca o fez, mas poderia fazê-lo. </label>

                                                       </div>

                                                      

                                                       <div>

                                                               <input type="radio" name="questao_2_resposta" id="questao_2_resposta-F" value="1" />

                                                               <label for="questao_2_resposta-F">F) Nunca o fez e agora teria dificuldade.</label>

                                                       </div>

                                               </li>

                                       </ol>

                              

                <p>

                                       <button class="button blue submit" id="enviar">Enviar</button>

                    <!-- <button class="button gray reset">Limpar</button> -->

                </p>

 

            </form>

        </div>

    </body>

</html>

 

Atenciosamente,

 

___________

Celso Ricardo

TI-Tecnologia da Informação

 

 

image001.gif

Pedro Coelho

unread,
Jun 19, 2013, 12:56:41 AM6/19/13
to ph...@googlegroups.com
Você tem que evitar o post do formulário e quando realizar a validação e ela passar submeter o form via JS e não pela a tag do html.


2013/6/19 Celso Ricardo <tic...@gmail.com>

--
--
Grupo PHPBA
http://groups.google.com.br/group/phpba?hl=pt-BR?hl=pt-BR
 
---
Você está recebendo esta mensagem porque se inscreveu no grupo "PHPBA" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para phpba+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 



--
Atensiosamente,
Pedro Coelho Torres
(71) 8774 - 7182

image001.gif

Anderson Farias

unread,
Jun 19, 2013, 7:19:14 AM6/19/13
to ph...@googlegroups.com
Olá Celso,

Após o alert
coloque history.back()

Abraços,

 
Anderson Farias
Programador Web  - PHP 





De: Pedro Coelho <pedr...@gmail.com>
Para: ph...@googlegroups.com
Enviadas: Quarta-feira, 19 de Junho de 2013 1:56
Assunto: Re: [phpba] Formulário Validação - Radio Button
image001.gif

Celso Ricardo

unread,
Jun 19, 2013, 8:06:41 AM6/19/13
to ph...@googlegroups.com

Caro Anderson,

 

Ele ainda vai para outra página mesmo assim.

image001.gif

Anderson Farias

unread,
Jun 19, 2013, 8:26:21 AM6/19/13
to ph...@googlegroups.com
No caso de redirecionamento, tente window.location = ‘pagina.php’; após o alert.


Abraços,

 
Anderson Farias
Programador Web  - PHP 





De: Celso Ricardo <tic...@gmail.com>
Para: ph...@googlegroups.com
Enviadas: Quarta-feira, 19 de Junho de 2013 9:06
Assunto: RES: [phpba] Formulário Validação - Radio Button
image001.gif

Igor Donin

unread,
Jun 19, 2013, 8:33:32 AM6/19/13
to ph...@googlegroups.com
Em javascript eu sei que é return false;
Não tenho a manha do jquery, não.

Ficaria 

  } else { 

     alert("A Pergunta de número 1 não foi respondida");

     return false;





--
image001.gif

Igor Donin

unread,
Jun 19, 2013, 8:36:51 AM6/19/13
to ph...@googlegroups.com
Um pseudo code de como faço isso com JS

function validar() {
  se (nao validado)
       return false;
}

<form onsubmit='validar()' >
     campos do form
     <input submit>
</form>


Em 19 de junho de 2013 01:48, Celso Ricardo <tic...@gmail.com> escreveu:

--
image001.gif

Igor Donin

unread,
Jun 19, 2013, 8:44:43 AM6/19/13
to ph...@googlegroups.com
Dois detalhes que acabei não falando:
- alerts são instrusivos, e não são a melhor forma de chamar a atenção do usuário.

o ideal seria submeter o form para a própria página (self post), tratar os erros em todas as camadas (jquery, php, bd), e então você teria o input do usuário na própria página caso houvesse alguma falha com a validação na primeira camada, e poderia repopular os campos do form com esse input, para evitar re-trabalho do usuário. então colocaria observações nos campos que estão mal preenchidos para que o usuário saiba o que está errado.

- o segundo detalhe é justamente o citado acima: submeter o form para a própria página e tratar os erros nas três camadas.


abraço.



Em 19 de junho de 2013 01:48, Celso Ricardo <tic...@gmail.com> escreveu:

--
image001.gif

Celso Ricardo

unread,
Jun 19, 2013, 9:43:09 AM6/19/13
to ph...@googlegroups.com

Então como eu faço isso?

submeter o form para a própria página e tratar os erros nas três camadas

 

 

 

De: ph...@googlegroups.com [mailto:ph...@googlegroups.com] Em nome de Igor Donin
Enviada em: quarta-feira, 19 de junho de 2013 09:45
Para: ph...@googlegroups.com
Assunto: Re: [phpba] Formulário Validação - Radio Button

 

Dois detalhes que acabei não falando:

image001.gif

Ari Ribeiro

unread,
Jun 19, 2013, 9:49:33 AM6/19/13
to ph...@googlegroups.com
Seria melhor você fazer a validação no evento submit do form e não no click do botão. Ficaria algo assim:

$("form").submit(function(){
      if(regra_validacao == false){
            alert("mensagem de erro");
            return false;
      }
});


Atenciosamente,
Ari Ribeiro
Tel: (71) 9227-2223
MSN: arivaldo...@hotmail.com

E-mail: arivald...@gmail.com
Twitter: @ariribeiro



image001.gif

George Moura

unread,
Jun 19, 2013, 9:51:10 AM6/19/13
to ph...@googlegroups.com

Celso procure no google avaliação de formulário com jquery, existe um plugin que faz a validacao e submete o formulário.

image001.gif

Roberto César

unread,
Jun 19, 2013, 11:00:14 AM6/19/13
to ph...@googlegroups.com
Perai que te passo o script funcionando.
Att,

Roberto César
71 8644 5824
image001.gif

Roberto César

unread,
Jun 19, 2013, 11:08:25 AM6/19/13
to ph...@googlegroups.com
Celso,
na tag <script>, troque pelo código abaixo.
Explicando:
isso significa que quando o form receber o evento "submit" ele irá fazer a validação, se estiver ok, ele seguirá com o evento, se não, return false.
<script>
                $(document).ready(function()
                {
                    $('form#quiz').on('submit', function()
                    {
                        if(!$("#quiz input[name='questao_1_resposta']:radio").is(':checked'))
                        {
                            alert("A Pergunta de número 1 não foi respondida");
                            return false;
                        }
                        else if(!$("#quiz input[name='questao_2_resposta']:radio").is(':checked'))
                        {
                            alert("A Pergunta de número 2 não foi respondida");
                            return false;
                        }else
                        {
                            return true;
                        }
                    });
                });
                </script>

Abs,

image001.gif

Hugo Henrique

unread,
Jun 20, 2013, 3:13:24 PM6/20/13
to ph...@googlegroups.com
O código que você postou já inclui uma ótima ferramenta para validação de forms no frontend,
Eu acho que alguns pontos que você precisa definir é a escolha de que modo deseja validar. Frontend, Backend ou ambas.

Antes de tudo veja a documentação e veja os demos.

Se não consegui, responda com sua dúvida.
Reply all
Reply to author
Forward
0 new messages