He construido un formulario con unos campos de texto para introducir datos en una BD, en el evento onBlur de cada uno de éstos llamo a una función que activa el botón de submit si los campos que yo especifico contienen algun valor. Esto lo uso para asegurarme que el usuario da valor a los campos que no pueden tener un valor nulo en la BD.
El código es más o menos algo así:
Código:
function ValidarFormulario(){ var llenados = true; if ((document.forms[0].apellido1.value == "") || (document.forms[0].nombre.value == "") || (document.forms[0].edad.value == "")) {llenados = false} if (llenados) {document.forms[0].accion.disabled = false}; if (!llenados) {document.forms[0].accion.disabled = true}; }
Código:
Ésto, así como está, funciona. Ahora bien, quiero ir un poco más allá y utilizar esta función para validar cualquier formulario de los más que tengo que hacer. He pensado en hacer una variable global que sea un array y que contenga el nombre de los campos que deben verificarse que su contenido no es nulo, así:<input type="text" name="apellido1" ... onBlur="ValidarFormulario()"> <input type="text" name="apellido2" ... onBlur="ValidarFormulario()"> <input type="text" name="nombre" ... onBlur="ValidarFormulario()"> <input type="text" name="edad" ... onBlur="ValidarFormulario()"> <input type="text" name="equipo_favorito" ... onBlur="ValidarFormulario()">
Código:
Entonces la función quedaría de la siguiente forma:var campos_no_nulos = new Array("apellido1","nombre","edad");
Código:
Vale function ValidarFormulario(){ var i; var n = campos_no_nulos.length; var llenados = true; for(i = 0;i < n - 1;i++){ if (<aqui es donde tengo el problema> == "") {llenados = false}}; if (llenados) {document.forms[0].accion.disabled = false}; if (!llenados) {document.forms[0].accion.disabled = true}; }




Por otra parte... ¿alguien sabe como puedo hacer esto de otra forma más elegante? ¿se podría hacer una consulta a la BD para saber que campos no pueden ser nulos y así construir el array campos_no_nulos dinámicamente (ya sé que esto es más de bases de datos que de javascript

Muchas gracias a quien haya leído hasta el final

