Foros del Web » Programando para Internet » Javascript »

Validar varios radio

Estas en el tema de Validar varios radio en el foro de Javascript en Foros del Web. Hola, antes que nada graciás desde ya!!! Necesito validar 3 radio de un formulario en el que valido otros campos de texto con este code: ...
  #1 (permalink)  
Antiguo 17/03/2004, 20:37
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Validar varios radio

Hola, antes que nada graciás desde ya!!!

Necesito validar 3 radio de un formulario en el que valido otros campos de texto con este code:

<SCRIPT language=JavaScript>
<!--
function ValidaCampos(theForm)
{
if (theForm.EDAD.value == "")
{
alert("Por favor seleccione su rango de Edad.");
theForm.EDAD.focus();
return (false);
}
if (theForm.NOMBRE.value == "")
{
alert("Por favor ingrese Su Nombre.");
theForm.NOMBRE.focus();
return (false);
}
if (theForm.AFICIONES.value == "")
{
alert("Por favor ingrese sus Aficiones.");
theForm.AFICIONES.focus();
return (false);
}
}
//-->
</SCRIPT>



Y en el Formulario
<FORM onsubmit="return ValidaCampos(this)" action="http://www.sitio.com/cgi-bin/archivo.pl" method="post" name="ENCUESTA_DAP" id="ENCUESTA_DAP">


Los radio que quiero validar son estos:
<INPUT name="AFICION_1" type="radio" value="Futbol">
<INPUT name="AFICION_1" type="radio" value="Musica">
<INPUT name="AFICION_2" type="radio" value="Informatica">
<INPUT name="AFICION_2" type="radio" value="Lectura">


¿Alguien podría decirme como adaptar el code que tengo o alguna forma para validar los radio???

Un saludo.
  #2 (permalink)  
Antiguo 18/03/2004, 11:04
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Por favor alguien me ayuda????


Un saludo.
  #3 (permalink)  
Antiguo 18/03/2004, 13:18
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Así a ojo a ver si te sirve algo así

<SCRIPT language=JavaScript>
<!--
function ValidaCampos(theForm)
{
if (theForm.EDAD.value == "")
{
alert("Por favor seleccione su rango de Edad.");
theForm.EDAD.focus();
return (false);
}
if (theForm.NOMBRE.value == "")
{
alert("Por favor ingrese Su Nombre.");
theForm.NOMBRE.focus();
return (false);
}
if (theForm.AFICIONES.value == "")
{
alert("Por favor ingrese sus Aficiones.");
theForm.AFICIONES.focus();
return (false);
}
aficiones1 = 0
for(m=0;m<2;m++){
if(theForm.AFICIONES1[m].checked == true){
aficiones1++
}
}
if(aficiones1==0){
alert('por favor, escoja una afición')
return false
}

}
//-->
</SCRIPT>

Eso comprobará que esté algún radio de aficiones1 seleccionado. Si te funciona bien, repite el código cambiando el 1 por el 2
  #4 (permalink)  
Antiguo 18/03/2004, 23:35
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Antes que nada muchas gracias tunait!!!

El codigo no funciona ma da error, creo que me explique mal los radio button que tengo que validar no tienen nada que ver con el campo de texto AFICIONES a continuación te los vuelvo a pegar con otro nombre por si me entendiste mal:

Los radio que quiero validar son estos:
<INPUT name="Estado_Civil" type="radio" value="Soltero">
<INPUT name="Estado_Civil" type="radio" value="Casado">
<INPUT name="Profesion" type="radio" value="Estudiante">
<INPUT name="Profesion" type="radio" value="Trabajador">

Un saludo.
  #5 (permalink)  
Antiguo 19/03/2004, 20:38
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Gracias tunait ya me valida los radio!!!

Ahora tengo otro problemilla..., le intento meter un focus y me dice que ese objeto no soporta ese parametro, le he intentado meter el focus a un campo oculto y también me da error sabes alguna forma para que el alert pueda llevar tambien un focus con los radio???

AFICIONES1 = 0
for(m=0;m<2;m++){
if(theForm.AFICIONES1[m].checked == true){
AFICIONES1++
}
if(AFICIONES1==0){
alert('Por favor, ingrese su Puesto Asistencial')
theForm.AFICIONES1.focus();
return (false);
}
}

Un saludo.
  #6 (permalink)  
Antiguo 19/03/2004, 22:15
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Hola tunait, pensaba que me funcionaba pero realmente solo funciona si activas el primer radio button si eliges el segundo te sigue diciendo que eligas uno..., sabes a que puede deberse este error???


AFICIONES1 = 0
for(m=0;m<2;m++){
if(theForm.AFICIONES1[m].checked == true){
AFICIONES1++
}
if(AFICIONES1==0){
alert('Por favor, ingrese su Puesto Asistencial')
theForm.AFICIONES1.focus();
return (false);
}
}


Saludos.
  #7 (permalink)  
Antiguo 20/03/2004, 04:31
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, Zertiko y tunait.

A ver si con esto:

AFICIONES = 0
for(m=0;m<4;m++){
if(theForm.AFICIONES1[m].checked == true)
AFICIONES++
}

if(AFICIONES==0){
alert('Por favor, ingrese su Puesto Asistencial')
theForm.AFICIONES1[0].focus();
return (false);
}
}

Saludos,
  #8 (permalink)  
Antiguo 20/03/2004, 11:26
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 1 mes
Puntos: 63
Hola gente

:)

A ver, no se si ya te funcionan o no...

pero en caso de que no te funcionen aun, te paso este código de ejemplo, tanto el javascript, como el html

<script type="text/javascript">
function detector() {
var formulario = document.forms[0];
for (var i = 0; i < formulario.cosa.length; i++) {
if (formulario.cosa[i].checked) {
break;
}
}
alert('el marcado es: ' + formulario.cosa[i].value + '.')
}
</script>

<form onchange="javascript:detector()">
<input type="radio" name="cosa" value="1" >
<input type="radio" name="cosa" value="2">
<input type="radio" name="cosa" value="3">
<input type="radio" name="cosa" value="4">
</form>

Como ves, el script revisa los botones de radio de nombre cosa. En el script, siempre tienes que indicarle que grupo de botones revisas.

Yo uso un alert para que diga cual es el botón seleccionado, pero donde yo puse el alert, puedes poner cualquier código que necesites...

Avísanos si se te arregla el problema

Suerte

Felicidad
__________________
¡ hey, hou, hou, hey !
  #9 (permalink)  
Antiguo 20/03/2004, 11:51
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Hola JavierB, he probado con este code y el focus funciona bien pero sigue sin validar si eligo el segungo radio, la verdad es que no me explico porque no funciona alguna idea de que puede ser???.

Gracias a ti también PatomaS no he probado tu code voy a probarlo ahora ya te cuento.


PUESTO_ASISTENCIAL = 0
for(m=0;m<4;m++){
if(theForm.PUESTO_ASISTENCIAL[m].checked == true){
PUESTO_ASISTENCIAL++
}
if(PUESTO_ASISTENCIAL==0){
alert('Por favor, seleccione su Puesto Asistencial.')
theForm.PUESTO_ASISTENCIAL[0].focus();
return (false);
}
}

Saludos.
  #10 (permalink)  
Antiguo 20/03/2004, 13:59
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 21 años, 5 meses
Puntos: 2
Hola tunai, JavierB y PatomaS gracias por vuestra ayuda sin ella no hubiese llegado a la solución del problema.

El problema estaba en que el segundo if debia ir fuera del for, exactamete asi:

PUESTO_ASISTENCIAL = 0
for(m=0;m<2;m++){
if(theForm.PUESTO_ASISTENCIAL[m].checked == true){
PUESTO_ASISTENCIAL++
}
}
if(PUESTO_ASISTENCIAL==0){
alert('Por favor, seleccione su Puesto Asistencial.')
theForm.PUESTO_ASISTENCIAL[0].focus();
return (false);
}


Así valida allas elegido la primera o la segunda opción del radio.

Saludos.
  #11 (permalink)  
Antiguo 21/03/2004, 04:02
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Me alegro de que lo hayas solucionado. Esto si que ha sido un trabajo en equipo
  #12 (permalink)  
Antiguo 03/09/2004, 11:51
Avatar de fer911  
Fecha de Ingreso: enero-2004
Ubicación: Saltillo, Coah
Mensajes: 65
Antigüedad: 20 años, 3 meses
Puntos: 3
gracias por el tip

A mi también me funcionó el codigo es muy útil. Excelente
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 15:52.