Código Javascript:
Ver original
function validarFormulario() { if (evaluacion.nombre.selectedIndex==0) { alert("Debes introducir obligatoriamente el Nombre de la persona evaluada"); evaluacion.nombre.focus(); return; } myOption2 = -1; for (u=evaluacion.grado.length-1; u > -1; u--) { if (evaluacion.grado[u].checked) { myOption2 = u; u = -1; } } if (myOption2 == -1) { alert("Debes introducir obligatoriamente tu grado de conocimiento de la persona evaluada"); evaluacion.id.focus(); return; }
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
var i; for (i=1;i<=30;i++) { if (evaluacion.i.selectedIndex==0) { alert("No puedes dejar en blanco ningún item. Por favor revisa el formulario y rellena todos los campos"); evaluacion.id.focus(); return; } }
El id de los campos va del 1 al 30.
El código completo sería este:
Código Javascript:
Ver original
<SCRIPT language="javascript"> // Creamos la función que valida los campos de formulario function validarFormulario() { // Validamos el campo Evaluado comprobando que se ha seleccionado una opción diferente a la index0 if (evaluacion.nombre.selectedIndex==0) { alert("Debes introducir obligatoriamente el Nombre de la persona evaluada"); evaluacion.nombre.focus(); return; } // Validamos el campo Grado comprobando que se haya seleccionado alguna opción myOption2 = -1; for (u=evaluacion.grado.length-1; u > -1; u--) { if (evaluacion.grado[u].checked) { myOption2 = u; u = -1; } } if (myOption2 == -1) { alert("Debes introducir obligatoriamente tu grado de conocimiento de la persona evaluada"); evaluacion.id.focus(); return; } // Validamos todos los campos numéricos var i; for (i=1;i<=30;i++) { if (evaluacion.i.selectedIndex==0) { alert("No puedes dejar en blanco ningún item. Por favor revisa el formulario y rellena todos los campos"); evaluacion.id.focus(); return; } } // Si se han introducido todos los campos correctamente se envia el cuestionario // Aquí podemos enviar el formulario mediante document.formulario.submit() else { 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."); evaluacion.submit(); } }// 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