Hola!
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:
<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()">
É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í:
Código:
var campos_no_nulos = new Array("apellido1","nombre","edad");
Entonces la función quedaría de la siguiente forma:
Código:
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};
}
Vale

ya habeis visto donde tengo el problema... no soy capaz de construir el nombre del campo que tengo que validar...

... supongo que es algo como documents.forms[0].campos_no_nulos[i]

pero no tengo ni idea...
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