Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Feedeex en 27 Agosto 2011, 02:47 am



Título: Return en formulario (javascript)
Publicado por: Feedeex en 27 Agosto 2011, 02:47 am
Hola a todos. Tengo la siguiente página:

Código:
<html>
 <head>
    <title>ASD</title>
  <script type="text/javascript">
    function ComprobarRadio(form) {
var a;
  for (a = 0; a < document.form.tipo.length; a++) {
    if (document.form.tipo[a].checked) {
return true;
} else {
alert("Debe indicar una opcion");
return false;
}
  }
}
  </script>
 </head>
 
<body>
  <form name="controlar_radio" onSubmit="return ComprobarRadio(this)" action="procesos/noticia_importante_nueva.php" method="post">
<p align="center">
<input type="radio" name="tipo" id="tipo" value="0" />&nbsp;Sin foto&nbsp;&nbsp;&nbsp;
<input type="radio" name="tipo" id="tipo" value="1" />&nbsp;Foto vertical&nbsp;&nbsp;&nbsp;
<input type="radio" name="tipo" id="tipo" value="2" />&nbsp;Foto horizontal
</p>
<input type="submit" value="Publicar" />

</form>
</body>
</html>

y lo que quiero verificar es que haya algún radio button seleccionado. Hay algunos problemas:

• El formulario se envía siempre, no se porque.
• Ahora que pienso, la sintáxis que hice no está muy bien que digamos. Porque "si el primer radio no está seleccionado, daría false", lo cual no me serviría porque yo quiero que verifique todos y después decida si enviar el formulario o no. Por lo tanto, decidí cambiar el código javascript pot:

Código:
function ComprobarRadio(form) {
var a;
var radio = 0;
  for (a = 0; a < document.form.tipo.length; a++) {
    if (document.form.tipo[a].checked) {
radio + 1;
}
  }
    if (radio > 0) {
return true;
} else {
alert("Debe indicar una opcion");
return false;
}
}

pero nada aún.

Si alguien me pudiese dar una mano le agradecería.


Título: Re: Return en formulario (javascript)
Publicado por: Shell Root en 27 Agosto 2011, 06:03 am
Código
  1. <head>
  2.    <title>ASD</title>
  3. <script language="javascript">
  4. function validateCheckBox( objForm ) {
  5. var numRadio    = document.Form1.rdoTipo.length;
  6. var checkRadio  = document.Form1.rdoTipo;
  7. var stateReturn = 0;
  8. for( var i=0; i<numRadio; i++ ){
  9. if( checkRadio[i].checked ){
  10. stateReturn += 1;
  11. }
  12. }
  13. return ( stateReturn > 0 )?true:false;
  14. }
  15.  </script>
  16. </head>
  17.  
  18. <form name="Form1" name="Form1" onSubmit="return validateCheckBox(this);" method="POST">
  19. <p align="center">
  20. <input type="radio" name="rdoTipo" id="rdoTipo" value="0" />&nbsp;Sin foto&nbsp;&nbsp;&nbsp;
  21. <input type="radio" name="rdoTipo" id="rdoTipo" value="1" />&nbsp;Foto vertical&nbsp;&nbsp;&nbsp;
  22. <input type="radio" name="rdoTipo" id="rdoTipo" value="2" />&nbsp;Foto horizontal
  23. </p>
  24. <input type="submit" value="Publicar" />
  25.  
  26. </form>
  27. </body>
  28. </html>