Foros del Web » Programando para Internet » Javascript »

validar campos anidados

Estas en el tema de validar campos anidados en el foro de Javascript en Foros del Web. Hola Tengo un problemilla que espero que alguno de vosotros me pueda resolver. Estoy haciendo un formulario para un hotel, hay tres campos que se ...
  #1 (permalink)  
Antiguo 04/03/2004, 05:38
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 2 meses
Puntos: 0
validar campos anidados

Hola

Tengo un problemilla que espero que alguno de vosotros me pueda resolver.

Estoy haciendo un formulario para un hotel, hay tres campos que se llaman:

habitacion_individual
habitacion_doble
habitacion_triple

Lo que necesito es que una vez que se ha seleccionado uno de estos campos, no se pueda seleccionar los otros dos, y que si se dejan los tres en blanco le salga un alert pidiéndole que rellene uno de ellos.

Gracias por el cable
  #2 (permalink)  
Antiguo 04/03/2004, 07:44
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Quizas lo puedas hacer con radio buttons. ¿Con que lo quieres hacer con radio o con checkbox?
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #3 (permalink)  
Antiguo 04/03/2004, 10:37
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
solucion con checkboxes

Bueno, he hecho un codigo con checkbox, aunque me parece que con los radios cumplias la funcion, pero bueno:

Código PHP:
<form name="fr">
<
input name="opcion0" type="checkbox">opcion 1<br>
<
input name="opcion1" type="checkbox">opcion 2<br>
<
input name="opcion2" type="checkbox">opcion 3<br>
<
input name="botonSubmit" type="button" value="submit" onclick="comprobacion()">
</
form>

<
script language="javascript">
opciones=new Array();
opciones[0]=document.fr.opcion0;
opciones[1]=document.fr.opcion1;
opciones[2]=document.fr.opcion2;

clickEnOpcion=function() {
    
numero=parseInt(this.name.split("").reverse());                //saca la X de opcionX
    
estaChecked=opciones[numero].checked;                        //esto es lo que ha hecho el navegador automaticamente
    
for(a=0;a<opciones.length;a++) opciones[a].checked=false;    //quitamos todos los check manualmente
    
opciones[numero].checked=estaChecked;                        //dejamos la opcion actual como lo que el navegador hizo
}
for(
a=0;a<opciones.length;a++) opciones[a].onclick=clickEnOpcion;

function 
comprobacion() {
    
puedeSubmit=false;
    for(
a=0;a<opciones.length;a++) {
        if(
opciones[a].checkedpuedeSubmit=true;
    }
    if(
puedeSubmitdocument.fr.submit();
    else 
alert("No puedes dejar todas las opciones vacias!");
}
</script> 

Cambialo a tu gusto. Un saludo!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 05/03/2004, 01:21
Avatar de palidowsky  
Fecha de Ingreso: febrero-2002
Ubicación: Galicia-España
Mensajes: 438
Antigüedad: 22 años, 2 meses
Puntos: 0
Ante todo gracias derkenuke

Mi problema es que los campos que debo anidar son <select >. Por favor alguien sabe como hacerlo.

GRACIAS
  #5 (permalink)  
Antiguo 05/03/2004, 05:52
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Es practicamente lo mismo, solo que en vez de trabajar con la propiedad checked, trabajar con la propiedad disabled (true|false). Quizas tengas que cambiar algo del codigo que te di a parte de eso, pero mas o menos...

Salu2
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
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 08:35.