Return en formulario (javascript)

Iniciado por Feedeex, 27 Agosto 2011, 02:47 AM

0 Miembros y 1 Visitante están viendo este tema.

Feedeex

Hola a todos. Tengo la siguiente página:

<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:

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.

Shell Root

#1
Código (html4strict) [Seleccionar]
<html>
<head>
    <title>ASD</title>
<script language="javascript">
function validateCheckBox( objForm ) {
var numRadio    = document.Form1.rdoTipo.length;
var checkRadio  = document.Form1.rdoTipo;
var stateReturn = 0;
for( var i=0; i<numRadio; i++ ){
if( checkRadio[i].checked ){
stateReturn += 1;
}
}
return ( stateReturn > 0 )?true:false;
}
  </script>
</head>

<body>
<form name="Form1" name="Form1" onSubmit="return validateCheckBox(this);" method="POST">
<p align="center">
<input type="radio" name="rdoTipo" id="rdoTipo" value="0" />&nbsp;Sin foto&nbsp;&nbsp;&nbsp;
<input type="radio" name="rdoTipo" id="rdoTipo" value="1" />&nbsp;Foto vertical&nbsp;&nbsp;&nbsp;
<input type="radio" name="rdoTipo" id="rdoTipo" value="2" />&nbsp;Foto horizontal
</p>
<input type="submit" value="Publicar" />

</form>
</body>
</html>
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.