Foros del Web » Programando para Internet » Javascript »

Validar Formulario con partes ocultas

Estas en el tema de Validar Formulario con partes ocultas en el foro de Javascript en Foros del Web. Hola buenas, resulta que tengo que validar un formulario que posee un checkbox, que si esta seleccionado desplega otra parte del formulario. El formulario lo ...
  #1 (permalink)  
Antiguo 14/02/2008, 04:09
 
Fecha de Ingreso: enero-2008
Mensajes: 57
Antigüedad: 16 años, 3 meses
Puntos: 0
Validar Formulario con partes ocultas

Hola buenas, resulta que tengo que validar un formulario que posee un checkbox, que si esta seleccionado desplega otra parte del formulario.
El formulario lo escondo metiendolo entre un <div id=capaexpansion>
#capaexpansion{
display:none;
}

y en el evento onclick del checkbox llamo a la funcion javascript

Código PHP:
<script language="JavaScript" type="text/javascript"

function 
expandir_formulario(objeto){

 if (
objeto.checked){ 
    
xDisplay('capaexpansion''block')
 }else{
    
xDisplay('capaexpansion''none')
 }

}
</script> 
Hasta aqui todo me funciona bien, el problema que tengo es que al validar el formulario voy recorriendo todos los elementos del formulario para ver si estan rellenos, pero aunque no tenga el checkbox seleccionado, me dice que tengo que rellenar los campos del formulario escondido. La funcion que tengo para validarlo es
Código PHP:
function Validar_formulario(formulario)//copiamos el contenido de objeto 1 al objeto 2 del formulario, y limpiamos los objetos 1 y 3
{
  
//Defino una variable boleana, si es 0 es false y si es 1 es true
  
var retorno 1;
  var 
elementos formulario.elements.length;

   
//bucle for paso por todos los elementos del formulario
  
for(i=0i<elementosi++){
    
    if(
        
retorno=1;
        break;
    }
       
//si el elemento definido en la array formulario esta vacio...
      
if((formulario.elements[i].style.display!='none')&&formulario.elements[i].value == "")){
       
// cambio de color el fondo a rojo y la letra
        
formulario.elements[i].style.backgroundColor '#ff0000';
        
formulario.elements[i].style.color '#ffffff';
        
//cambio el valor de la variable boleana porque el campo esta vacio
       
retorno 0;
      }else{
        
//si el campo esta relleno de texto le cambio el color a verde
        
formulario.elements[i].style.backgroundColor '#91E148';
      }
    
   }
 
//En esta condicion: Si retorno es 0 "false" no envio el formulario y alerto al usuario
if (retorno == 0){
alert("Algunos campos del formulario estan sin cubrir: \nPor Favor, rellene todos los campos");
return (
false);
}
//En esta condicion: Si retorno es 1 "true" envio el formulario y alerto al usuario conforme el exito
if (retorno == 1){
return (
true);
}

Le paso el objeto this a esta funcion.

Gracias y un saludo
  #2 (permalink)  
Antiguo 14/02/2008, 16:21
 
Fecha de Ingreso: enero-2008
Mensajes: 57
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Validar Formulario con partes ocultas

nadie me puede hechar una mano?, fijo que alguien ha hecho algo parecido.

Saludos
  #3 (permalink)  
Antiguo 15/02/2008, 09:32
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: Validar Formulario con partes ocultas

Lo que pasa es que el check no trabaja con value si no mas bien con la propiedad checked, por lo cual tendrias que hacer una pequeña modificacion...
Código:
   if(formulario.elements[i].type=='text'){
      if((formulario.elements[i].style.display!='none')&&formulario.elements[i].value == "")){
       // cambio de color el fondo a rojo y la letra
        formulario.elements[i].style.backgroundColor = '#ff0000';
        formulario.elements[i].style.color = '#ffffff';
        //cambio el valor de la variable boleana porque el campo esta vacio
       retorno = 0;
      }else{
        //si el campo esta relleno de texto le cambio el color a verde
        formulario.elements[i].style.backgroundColor = '#91E148';
      }
   }else{  
     /*es un input pero no de tipo text, por ejemplo hiddem, radioy checkbox, etc*/
      if(formulario.elements[i].checked){
           /*lo que desees hacer...*/
      }
   }
Pruebalo haber como va...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
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 20:43.