nexidon
Usuario Novato
Usuario Novato

hola tengo un formulario y quiero ver si ciertos campos estan vacios y he hecho esta funcion para verlo.

<script language="JavaScript">

function comprobar()
{
var n0=0, n1=0, n2=0, n3=0, n4=0, n5=0, n6=0, n7=0, n8=0, n9=0, n10=0, n11=0;

if (document.forms[0].nombre.value=="&quotGiño{document.forms[0].nombre.style.backgroundColor="#ffffcc"; n0=1;} else
{document.forms[0].nombre.style.backgroundColor="white";}

if (document.forms[0].numidentificacion.value=="&quotGiño{document.forms[0].numidentificacion.style.backgroundColor="#ffffcc"; n1=1;} else
{document.forms[0].numidentificacion.style.backgroundColor="white";}

if (document.forms[0].login.value=="&quotGiño{document.forms[0].login.style.backgroundColor="#ffffcc"; n2=1;} else
{document.forms[0].login.style.backgroundColor="white";}

if (document.forms[0].password.value=="&quotGiño{document.forms[0].password.style.backgroundColor="#ffffcc"; n3=1;} else
{document.forms[0].password.style.backgroundColor="white";}

if (document.forms[0].password1.value=="&quotGiño{document.forms[0].password1.style.backgroundColor="#ffffcc"; n4=1;} else
{document.forms[0].password1.style.backgroundColor="white";}

if (document.forms[0].pregunta.value=="&quotGiño{document.forms[0].pregunta.style.backgroundColor="#ffffcc"; n5=1;} else
{document.forms[0].pregunta.style.backgroundColor="white";}

if (document.forms[0].respuesta.value=="&quotGiño{document.forms[0].respuesta.style.backgroundColor="#ffffcc"; n6=1;} else
{document.forms[0].respuesta.style.backgroundColor="white";}

if (document.forms[0].direccion.value=="&quotGiño{document.forms[0].direccion.style.backgroundColor="#ffffcc"; n7=1;} else
{document.forms[0].direccion.style.backgroundColor="white";}

if (document.forms[0].localidad.value=="&quotGiño{document.forms[0].localidad.style.backgroundColor="#ffffcc"; n8=1;} else
{document.forms[0].localidad.style.backgroundColor="white";}

if (document.forms[0].cp.value=="&quotGiño{document.forms[0].cp.style.backgroundColor="#ffffcc"; n9=1;} else
{document.forms[0].cp.style.backgroundColor="white";}

if (document.forms[0].telefono1.value=="&quotGiño{document.forms[0].telefono1.style.backgroundColor="#ffffcc"; n10=1;} else
{document.forms[0].telefono1.style.backgroundColor="white";}

if (document.forms[0].numeropago.value=="&quotGiño{document.forms[0].numeropago.style.backgroundColor="#ffffcc"; n11=1;} else

{document.forms[0].numeropago.style.backgroundColor="white";}

if ( (n0=="1&quotGiño && (n1=="1&quotGiño && (n2=="1&quotGiño && (n3=="1&quotGiño && (n4=="1&quotGiño && (n5=="1&quotGiño && (n6=="1&quotGiño && (n7=="1&quotGiño && (n8=="1&quotGiño && (n9=="1&quotGiño && (n10=="1&quotGiño

&& (n11=="1&quotGiño ){alert("El formulario contiene campos vacíos&quotGiño;}else{document.forms[0].submit();}

}
</script>



Esto me revisa si cada campo esta vacio y si es asi me pone el campo en amarillo, si el campo esta con informacion lo pone en blanco. El problema que no se donde falla ya que al apretar al enviar siempre lo envia aunque los campos vacios loco

PrisConSua
Usuario habitual
Usuario habitual

El error esta en la condicion logica del ultimo if.

Deberias unir las distintas clausulas con "o" en lugar "y".

Lo que quieres es mostrar el mensaje "El formulario contiene campos vacíos" y cancelar el envio si ALGUN campo esta vacio. Tal como lo tienes escrito ahora el mensaje solo se muestra si TODOS los campos estan vacios.

Por otra parte, no te hace falta tener tantas variables y una condicion de if tan larga.
Yo lo progamaria asi (sugerencia):

Codigo:

var camposVacios = 0;

if (document.forms[0].nombre.value=="" ) {
document.forms[0].nombre.style.backgroundColor="#ffffcc";
camposVacios++;
} else {
document.forms[0].nombre.style.backgroundColor="white";
}

if (document.forms[0].numidentificacion.value=="" ) {
document.forms[0].numidentificacion.style.backgroundColor="#ffffcc";
camposVacios++;
} else {
document.forms[0].numidentificacion.style.backgroundColor="white";
}

etc, etc ...


el ultimo if quedaria asi

Codigo:

if (camposVacios>0) {
alert("El formulario contiene "+camposVacios+" campos vacíos" );
} else {
document.forms[0].submit();
}

Creo que es mas sencillo.


Bueno en realidad, si tuviese que programar algo asi, hubiese creado un array que los campos que quiero verificar y luego los comprebaria con un bucle y tal, pero quizas eso sea complicarse la vida. RollEyes

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 16/Sep/2003, 17:30
Kravenhart chavp User 479801215kSep/03