Validar inputs dinamicos
Tengo un formulario con 76 campos dinámicos, y al darle submit necesito que se valide que todos están llenos, para esto hice esta función que llamo en el evento onSubmit de la forma:
function ValidarVacios()
{
var f = document.forms['form1'];
var text = "";
var alerta = false;
//numTexts es el numero de campos, ahora son 76 pero podria variar
for (var i = 0; i <= parseInt(f.numTexts.value); i++){
//los nombres de los campos comienzan con el prefijo 'txt' seguido del numero del campo
text = 'txt' + String(i);
if (('f.'+[text]+'.value') == ''){
alerta = true;
}
}
if (alerta==true)
{
alert('Campos Vacios');
return false;
}
else{
return true;
}
}
Lo que hace este script es que va recorriendo todos los campos y si alguno esta vacío cambia el estado de la variable alerta de false a true, de modo que si hay aunque sea un solo campo vacío, debe entrar y cambiar a true la variable alerta.
Cuando termina de recorrerlos hay un if preguntando si la variable alerta es true, entonces saca un mensaje alert diciendo que hay campos vacíos, el problema es que al dar submit esta ignorando totalmente el script y checando vi que no entra al if que esta dentro del for, donde cambio el estado de la variable:
if (('f.'+[text]+'.value') == ''){
alerta = true;
}
Ahora no se si estoy concatenando bien la variable con el restod e la sentencia o que estoy haciendo mal.
¿Alguien sabe alguna otra forma para checar inputs text dinámicos? ¿Y qué el mensaje salga solo una vez ya sea que haya uno o más inputs vacíos?
function ValidarVacios()
{
var f = document.forms['form1'];
var text = "";
var alerta = false;
//numTexts es el numero de campos, ahora son 76 pero podria variar
for (var i = 0; i <= parseInt(f.numTexts.value); i++){
//los nombres de los campos comienzan con el prefijo 'txt' seguido del numero del campo
text = 'txt' + String(i);
if (('f.'+[text]+'.value') == ''){
alerta = true;
}
}
if (alerta==true)
{
alert('Campos Vacios');
return false;
}
else{
return true;
}
}
Lo que hace este script es que va recorriendo todos los campos y si alguno esta vacío cambia el estado de la variable alerta de false a true, de modo que si hay aunque sea un solo campo vacío, debe entrar y cambiar a true la variable alerta.
Cuando termina de recorrerlos hay un if preguntando si la variable alerta es true, entonces saca un mensaje alert diciendo que hay campos vacíos, el problema es que al dar submit esta ignorando totalmente el script y checando vi que no entra al if que esta dentro del for, donde cambio el estado de la variable:
if (('f.'+[text]+'.value') == ''){
alerta = true;
}
Ahora no se si estoy concatenando bien la variable con el restod e la sentencia o que estoy haciendo mal.
¿Alguien sabe alguna otra forma para checar inputs text dinámicos? ¿Y qué el mensaje salga solo una vez ya sea que haya uno o más inputs vacíos?
Respuesta de tomasdv
1