Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/02/2011, 11:10
Avatar de angel_dope
angel_dope
 
Fecha de Ingreso: noviembre-2002
Ubicación: Valencia
Mensajes: 737
Antigüedad: 22 años, 2 meses
Puntos: 8
Comprobar Radiobuttons antes de enviar formulario

Hola, tengo un formulario con 47 preguntas. Cada pregunta tiene cinco radio buttons (bueno, casi todas, algunas tienen solo dos) y antes de enviar el formulario a la siguiente página quiero comprobar que se ha pulsado alguno de cada pregunta. He encontrado un código de Karlankas que en principio me serviría pero necesito modificar dos cosas: por un lado, hay algunos radiobutton que están deshabilitados y solo se habilitan en función de las respuestas previas. Con el código de Karlankas los deshabilitados también se comprueban y siempre me pide que los rellene, cosa imposible al estar deshabilitado. Y por el otro lado me gustaría que en el mensaje de alerta se mostrase el número de pregunta que falta por rellenar. Os dejo primero el código original de Karlankas y después las modificaciones que he probado, pero que no me han funcionado :S

Código original de Karlankas: http://www.forosdelweb.com/f13/valid...9/#post1066329

Código Javascript:
Ver original
  1. <script>
  2.  
  3. var MensajeDeError="Haga el favor de rellenar todo!"
  4.     function pepote(f){
  5.         marcado=false;
  6.         var nombre;
  7.         for(a=0;a<f.elements.length;a++){
  8.             if(f[a].type=="radio"){
  9.                 if(nombre!=f[a].name){
  10.                     nombre=f[a].name;
  11.                     for(aa=0;f[a+aa].name==f[a].name;aa++){
  12.                         if(f[a+aa].checked){marcado=true};
  13.                     }
  14.                     if(marcado==false){alert(MensajeDeError);return false;}
  15.              
  16.                 }
  17.             marcado=false;
  18.             }
  19.      
  20.         }
  21.     }
  22.      
  23.     </script>

Este es el mio, he intentado que comprobase si estaba deshabilitado, pero ha pasado de mi:


Código Javascript:
Ver original
  1. <script language="javascript">
  2. var MensajeDeError="Haga el favor de rellenar todo!"
  3.     function pepote(f){
  4.         marcado=false;
  5.         var nombre;
  6.         for(a=0;a<f.elements.length;a++){
  7.             if(f[a].type=="radio" && f[a].disabled!= "true"){
  8.                 if(nombre!=f[a].name){
  9.                     nombre=f[a].name;
  10.                     for(aa=0;f[a+aa].name==f[a].name;aa++){
  11.                         if(f[a+aa].checked){marcado=true};
  12.                     }
  13.                     if(marcado==false){alert(MensajeDeError);return false;}
  14.              
  15.                 }
  16.             marcado=false;
  17.             }
  18.      
  19.         }
  20.     }
  21. </script>

Y en este último he intentado mostrar también los números de las preguntas usando el contador del script y sumándole uno, pero con esto solo he conseguido que a medida que iba marcando respuestas, el mensaje era cada vez más largo y sin sentido :S
Código Javascript:
Ver original
  1. <script language="javascript">
  2. var MensajeDeError="Haga el favor de rellenar la pregunta "
  3.     function pepote(f){
  4.         marcado=false;
  5.         var nombre;
  6.         for(a=0;a<f.elements.length;a++){
  7.             if(f[a].type=="radio" && f[a].disabled!= "true"){
  8.                 if(nombre!=f[a].name){
  9.                     nombre=f[a].name;
  10.                     for(aa=0;f[a+aa].name==f[a].name;aa++){
  11.                         if(f[a+aa].checked){
  12.                             {marcado=true};
  13.                         }else{
  14.                             MensajeDeError = MensajeDeError + (a+1) + ", "
  15.                         }
  16.                     }
  17.                     if(marcado==false){alert(MensajeDeError);return false;}
  18.              
  19.                 }
  20.             marcado=false;
  21.             }
  22.      
  23.         }
  24.     }
  25. </script>
__________________
Vayamos por Partes :: Jack el Destripador