Validar formularion con javascript

Quiero validar un formulario con javascript antes de que se pase a un script php. Son varios campos de formulario obligatorios. He hecho este script, pero no funciona bien. Las veces que lo probé, sólo chequea cod_postal, email y teléfono... Si el resto está sin cubrir, lo envía igual. A ver si me ayudas o me dices como hacer un poco más eficiente dicho script. Como segunda cosilla, ¿cómo puedo hacer para guardar ese script en un archivo .js o algo así, fuera del formulario y hacer un include o algo así para no tener todo el código del script en la página?.
El código es éste:
<script language="JavaScript" type="text/JavaScript">
<!--
function formulario()
{
//Chequeamos si introduce los campos obligatorios; regexp se utiliza
// para ver si el email tiene la estructura [email protected]
var regexp = /^[0-9a-zA-Z._]+\@[0-9a-zA-Z]+\.[0-9a-zA-Z.]+$/;
//Chequeamos nombre
if (document.registro.nombre.value.length=0)
{
alert("Introduzca su nombre, por favor.");
document.registro.nombre.focus();
return false;
} else {
var c_nombre=true;
}
//Chequeamos apellidos
if (document.registro.apellidos.value.length=0)
{
alert("Introduzca sus apellidos, por favor.");
document.registro.apellidos.focus();
return false;
} else {
var c_apellidos=true;
}
//Chequeamos fecha de nacimiento
if (document.registro.fecha_nac.value.length=0)
{
alert("Introduzca su fecha de nacimiento, por favor.");
document.registro.fecha_nac.focus();
return false;
} else {
var c_fecha=true;
}
//Chequeamos NIF
if (document.registro.nif.value.length=0)
{
alert("Introduzca su NIF, por favor.");
document.registro.nif.focus();
return false;
} else {
var c_nif=true;
}
//Chequeamos direccion
if (document.registro.direccion.value.length=0)
{
alert("Introduzca su dirección, por favor.");
document.registro.direccion.focus();
return false;
} else {
var c_direccion=true;
}
//Chequeamos Ciudad, Provincia y País
if ((document.registro.ciudad.value.length=0) || (document.registro.provincia.value.length=0) || (document.registro.pais.value.length=0))
{
alert("Introduzca su Ciudad, Provincia y País, por favor.");
document.registro.ciudad.focus();
return false;
} else {
var c_ciudad=true;
}
//Chequeamos código postal
if (document.registro.cod_postal.value.length<5 || document.registro.cod_postal.value.length>10)
{
alert("Introduzca su código postal, por favor.");
document.registro.cod_postal.focus();
return false;
} else {
var c_cod_postal=true;
}
//Chequeamos teléfono
if (document.registro.telefono.value.length<9 || document.registro.telefono.value.length>13)
{
alert("Introduzca su telefono, por favor.");
document.registro.telefono.focus();
return false;
} else {
var c_telefono=true;
}
//Chequeamos que la confimación de password y el password, coincidan.
if (document.registro.password.value != document.registro.password2.value)
{
alert("Los password introducidos no coinciden.");
document.registro.password.focus();
return false;
} else {
var c_passwords=true;
}
//Chequeamos email
if ((regexp.test(document.registro.email.value) == false) || (document.registro.email.value.length = 0))
{
alert("Al parecer, la dirección de e-mail proporcionada no es correcta.");
document.registro.email.focus();
return false;
} else {
var c_email=true;
}
//Ahora si todas las variables generadas son TRUE, mandamos el formulario.
if ((c_nombre=true) && (c_apellidos=true) && (c_fecha=true) && (c_nif=true) && (c_direccion=true) && (c_ciudad=true) && (c_cod_postal=true) && (c_passwords=true) && (c_telefono=true) && (c_email=true))
{
document.registro.submit();
}
}
//-->
</script>

1 Respuesta

Respuesta
El código parece estar ok. Asegurate de que el formulario tiene un name="registro" y del nombre de cada campo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas