Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2011, 03:00
Avatar de majete
majete
 
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 5 meses
Puntos: 2
Completar validación de Formulario

Hola chicos... tengo un código javascript que me hace una validación de que ciertos campos de un encabezado se rellenan: Nombre, Grado, etc...

Código Javascript:
Ver original
  1. function validarFormulario() {
  2. if (evaluacion.nombre.selectedIndex==0) {  
  3.     alert("Debes introducir obligatoriamente el Nombre de la persona evaluada");  
  4.     evaluacion.nombre.focus(); return;  
  5.     }
  6.  
  7. myOption2 = -1;
  8.    for (u=evaluacion.grado.length-1; u > -1; u--) {
  9.    if (evaluacion.grado[u].checked) {
  10.    myOption2 = u; u = -1;
  11.    }
  12.    }
  13.    if (myOption2 == -1) {
  14.    alert("Debes introducir obligatoriamente tu grado de conocimiento de la persona evaluada");
  15.    evaluacion.id.focus(); return;
  16.    }


Entonces, mi problema viene ahora cuando quiero validar unos campos de lista desplegable en el mismo formulario, que ya no forman parte del encabezado.
No puedo utilizar el mismo método que antes porque son 30 campos y claro, se alargaría el código una barbaridad y ralentizaría la carga.

Quiero hacer un bucle FOR para que pase por todos los campos y vea si alguno no está seleccionado, me salte una venta de alerta indicando que se ha dejado en blanco alguno de los campos.

Hice esto pero como no tengo idea de programar en javascript me salta error:

Código Javascript:
Ver original
  1. var i;
  2.    for (i=1;i<=30;i++) {
  3.    if (evaluacion.i.selectedIndex==0) {  
  4.     alert("No puedes dejar en blanco ningún item. Por favor revisa el formulario y rellena todos los campos");  
  5.     evaluacion.id.focus(); return;
  6.     }
  7.     }

El id de los campos va del 1 al 30.

El código completo sería este:

Código Javascript:
Ver original
  1. <SCRIPT language="javascript">  
  2.  
  3. // Creamos la función que valida los campos de formulario  
  4. function validarFormulario() {  
  5.  
  6.  
  7. // Validamos el campo Evaluado comprobando que se ha seleccionado una opción diferente a la index0  
  8.     if (evaluacion.nombre.selectedIndex==0) {  
  9.     alert("Debes introducir obligatoriamente el Nombre de la persona evaluada");  
  10.     evaluacion.nombre.focus(); return;  
  11.     }    
  12.    
  13. // Validamos el campo Grado comprobando que se haya seleccionado alguna opción    
  14.    myOption2 = -1;
  15.    for (u=evaluacion.grado.length-1; u > -1; u--) {
  16.    if (evaluacion.grado[u].checked) {
  17.    myOption2 = u; u = -1;
  18.    }
  19.    }
  20.    if (myOption2 == -1) {
  21.    alert("Debes introducir obligatoriamente tu grado de conocimiento de la persona evaluada");
  22.    evaluacion.id.focus(); return;
  23.    }
  24.  
  25. // Validamos todos los campos numéricos
  26.    var i;
  27.    for (i=1;i<=30;i++) {
  28.    if (evaluacion.i.selectedIndex==0) {  
  29.     alert("No puedes dejar en blanco ningún item. Por favor revisa el formulario y rellena todos los campos");  
  30.     evaluacion.id.focus(); return;
  31.     }
  32.     }
  33.  
  34.    
  35. // Si se han introducido todos los campos correctamente se envia el cuestionario  
  36. // Aquí podemos enviar el formulario mediante document.formulario.submit()  
  37.  
  38.     else {  
  39.     alert("ATENCIÓN: Se va a enviar el cuestionario.\nNo cierre la ventana del navegador hasta que no vea la pantalla de confirmación del envío.");
  40.     evaluacion.submit();  
  41.     }  
  42.  
  43. }// Fin de la función validarFormulario()

Lo curioso de esto es que al cargar la página aparece el interrogante y me dice que hay un error en la línea 38, donde tengo el else ?¿?¿

¿Alguien que pueda orientarme?
Gracias
JC

Última edición por majete; 12/05/2011 a las 03:12