Foros del Web » Programando para Internet » Javascript »

Validar un grupo de radio button

Estas en el tema de Validar un grupo de radio button en el foro de Javascript en Foros del Web. Hola que tal, no se si estoy ubicando bien mi pregunta, pero busque en el foro y no encontré una solución por eso la publico ...
  #1 (permalink)  
Antiguo 28/03/2011, 10:55
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años
Puntos: 0
De acuerdo Validar un grupo de radio button

Hola que tal, no se si estoy ubicando bien mi pregunta, pero busque en el foro y no encontré una solución por eso la publico esperando una pronta y satisfactoria respuesta.

Mi problema es el siguiente, tengo un formulario sencillo con un grupo de radio button los cuales obtienen su valor a travez de una consulta mysql, y quiero validarlos para q cuando el usuario no seleccione alguno, se muestre un alert q me diga q seleccione uno. Tengo ya realizado un script pero no se donde esta el problema puesto q si selecciono o no selecciono una opcion, me muestra el alert.
Y la verdad necesito la ayuda urgente. Por favor, si alguien me puede colaborar estaré muy agradecido.....

Aqui dejo parte del script, ojala lo puedan revisar y colaborarme. Gracias!!!:


<script language="javascript">
function validacion(form1) {

var nom_acu = /([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)/ //letras, '.' y '-' o espacio
var prof_acu = /([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|\s|\.|-)/
var tel_acu = /([0-9])/ //numeros
var tel_tracu = /([0-9])/

//comprueba campo nombre acudiente
if(!nom_acu.test(form1.nom_acu.value) && form1.nom_acu.value != "") {
alert('Contenido del campo NOMBRE DEL ACUDIENTE no válido.'); form1.nom_acu.focus();
return false;
}

//comprueba campo telefono acudiente
if(!tel_acu.test(form1.tel_acu.value) && form1.tel_acu.value != "") {
alert('Contenido del campo TELEFONO DEL ACUDIENTE no válido.'); form1.tel_acu.focus();
return false;
}

//comprueba campo profesion
if(!prof_acu.test(form1.prof_acu.value) && form1.prof_acu.value != "") {
alert('Contenido del campo PROFESIÓN DEL ACUDIENTE no válido.'); form1.prof_acu.focus();
return false;
}

//comprueba campo telefono trabajo
if(!tel_tracu.test(form1.tel_tracu.value) && form1.tel_tracu.value != "") {
alert('Contenido del campo TELEFONO DEL LUGAR DE TRABAJO no válido.'); form1.tel_tracu.focus();
return false;
}

radio_group = document.form1.op;
for(var ctr = 0 ; ctr < 20; ctr++){
if(!radio_group[ctr].checked){
alert ("No has seleccionado radio");
return false;
}
else{
break;
}
}

}
</script>


echo"<form id='form1' name='form1' method='post' action='matrin4.php' onSubmit=\"return validacion(this)\">
<table border='1' align='center'>
<tr>
<td background='na.gif' width='238' height='0'></td>
<td><input name='nom_acu' type='text' id='nom_acu' style='text-transform:uppercase;' onChange=\"javascript:this.value=this.value.toUppe rCase();\" class='campo'/></td>
</tr>
<tr>
<td background='ta.gif' width='238' height='0'></td>
<td><input name='tel_acu' type='text' id='tel_acu' class='campo'/></td>
</tr>
<tr>
<td background='pa.gif' width='238' height='0'></td>
<td><input name='prof_acu' type='text' id='prof_acu' style='text-transform:uppercase;' onChange=\"javascript:this.value=this.value.toUppe rCase();\" class='campo'/></td>
</tr>
<tr>
<td background='lta.gif' width='238' height='0'></td>
<td><input name='lugar_acu' type='text' id='lugar_acu' style='text-transform:uppercase;' onChange=\"javascript:this.value=this.value.toUppe rCase();\" class='campo'/></td>
</tr>
<tr>
<td background='tt.gif' width='238' height='0'></td>
<td><input name='tel_tracu' type='text' id='tel_tracu' class='campo'/></td>
</tr>
</table>";


echo"<br><br><center><img src='ah.gif' /></center><br>";
echo"<div align='center'><font size='3pt' color='#0066FF'><strong>Seleccione el horario al que desea matricularse.</strong></font>
<br><br>
</div>";

$ch="select horario,cod_hor,cod_idi from horario where tipo='PUB' and estado!='I' and cod_idi='$idioma'";
$rh=mysql_query($ch);
echo"<table border='1' align='center'>";
$nc=0;
while($ra=mysql_fetch_row($rh)){
$nh=$ra[0];
$nc=$nc+1;
echo"<tr><td><strong>$nc - </strong></td><td>
<font size='2pt'>$ra[0]</font></td><td><input type='radio' name='op' value='$ra[1]'/></td></tr>";
}

echo"</table>
<br>
<center><input type='submit' value='Siguiente' id='ok'/></center></form>";
  #2 (permalink)  
Antiguo 28/03/2011, 11:10
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Validar un grupo de radio button

Hola:

A simple vista solo chequea el primero de los radios. Creo que te sobra el else...

O sea le quitas el else, y cambias la condición, pero cuando encuentre un chequed sales sin más, y si termina el bucle muestras la alerta...

radio_group = form1.op;
for(var ctr = 0 ; ctr < 20; ctr++) {
if(radio_group[ctr].checked) return
}
alert ("No has seleccionado radio");
return false;

La lógica sería que si termina el bucle y no hay ninguno chequeado es cuando se debe alertar, pero en cuanto encuentre uno chequeado no hay que poner nada.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 28/03/2011, 13:36
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un grupo de radio button

Hola caricatos, me disculpo si expuse mi pregunta donde no debia, soy nuevo en este foro y la verdad no estaba muy seguro donde publicar mi pregunta....

Con respecto a tu respuesta, lo probé y sigue sin funcionar, ahora no muestra el alert y se dirige a la pagina siguiente. El else q estaba sobrando, si fue error mio, no debia estar alli. Por favor colaborame en ese aspecto! Gracias nuevamente!
  #4 (permalink)  
Antiguo 04/04/2011, 13:43
 
Fecha de Ingreso: marzo-2011
Mensajes: 58
Antigüedad: 13 años
Puntos: 0
Respuesta: Validar un grupo de radio button

Hola, me disculpo si expuse mi pregunta donde no debia, soy nuevo en este foro y la verdad no estaba muy seguro donde publicar mi pregunta....

Por favor colaborenme con este problema! Gracias nuevamente!

Etiquetas: grupo, radio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:48.