Hola. Ejercicio CU01185E del curso JavaScript desde cero.
A partir del siguiente código:
<html>
<head>
<meta charset="utf-8">
<style type="text/css">
input {margin:10px;}
</style>
<script>
function Valida(formulario) {
/* Validación de campos NO VACÍOS */
if ((formulario.campo1.value.length == 0) || (formulario.campo2.value.length ==0) || (formulario.cpostal.value.length ==0) || (formulario.dni.value.length ==0) || (formulario.email.value.length ==0)) {
alert('Falta información');
return false;
}
if (isNaN(parseInt(formulario.campo2.value))) {
alert('El campo2 debe ser un número');
return false;
}
/* validación del CÓDIGO POSTAL*/
var ercp=/(^([0-9]{5,5})|^)$/;
if (!(ercp.test(formulario.cpostal.value))) {
alert('Contenido del código postal no es un código postal válido');
return false; }
/* validación del DNI */
var erdni=/(^([0-9]{8,8}\-[A-Z])|^)$/;
if (!(erdni.test(formulario.dni.value))) {
alert('Contenido del dni no es un DNI válido.');
return false; }
/* validación del e-mail */
var ercorreo=/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/;
if (!(ercorreo.test(formulario.email.value))) {
alert('Contenido del email no es un correo electrónico válido.');
return false; }
/* si no hemos detectado fallo devolvemos TRUE */
return true;
}
</script>
</head>
<body>
<form name="miFormulario" onsubmit="return Valida(this);" action="http://aprenderaprogramar.com" >
Campo1 <input type="text" name="campo1"><br>
Campo2 (debe ser número) <input type="text" name="campo2"><br>
Código postal <input type="text" name="cpostal"><br>
DNI <input type="text" name="dni"><br>
email <input type="text" name="email"><br>
<input type="submit" value="Enviar" name="enviar">
</form>
</body>
</html>
a) ¿Cómo se realiza la comprobación de que no hay campos vacíos?
Desde esta parte...
if ((formulario.campo1.value.length == 0) || (formulario.campo2.value.length ==0) || (formulario.cpostal.value.length ==0) ||
(formulario.dni.value.length ==0) || (formulario.email.value.length ==0)) {
alert('Falta información');
return false;
}
Se comprueba el tamaño de la cadena de caracteres introducidos en cada campo, y si alguna es 0, no será enviado el formulario.
b) ¿Cómo se realiza la comprobación de que el campo 2 es un número?
Con la función isNaN() se comprueba si los datos introducidos son un número válido.
c) ¿En qué consiste la validación del código postal? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.
La expresión regular usada es /(^([0-9]{5,5})|^)$/, que viene a decir que el campo debe de contener cinco caracteres numéricos que estén entre el 0 y el 9.
Ejemplos válidos serían: 12345, 45678, 05574.
Ejemplos no válidos serían cualquier número que contenga menos de 5 cifras o más de 5 cifras.
d) ¿En qué consiste la validación del DNI? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.
/(^([0-9]{8,8}\-[A-Z])|^)$/
El DNI debe de estar formado por 8 caracteres que estén entre el 0 y el 9, seguidos por un guión "-" y acabados con una letra mayúscula.
DNI no válidos: 12345-S, 12345Z, 004546-
DNI válidos: 00000000-S, 12345678-E, 45678915-Z
e) ¿En qué consiste la validación del email? Explícala paso a paso. Pon ejemplos de tres valores válidos y tres valores no válidos.
/^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/
El email debe de empezar por una cadena de caracteres que no empiecen por @ o espacio en blanco, compuesta por 1 o mas caracteres. Seguida del simbolo @. Seguida de una cadena de caracteres que no empiecen por @, "." o espacio en blanco, compuesta por 1 o mas caracteres. Seguida de un ".". Seguida de una cadena de caracteres que no empiecen por @, "." o espacio en blanco, compuesta por 1 o mas caracteres.
Emails no válidos: @@.com, pepe.com, popi@.com
Emails válidos: pepe@pepe.com, pepe@p.c, pepe@pepe.pepepe
f) ¿Cómo se consigue que no se envíe el formulario si no se cumplen los requisitos exigidos?
Los requisitos se van comprobando uno a uno, así que en cuanto uno de ellos no es válido se devuelve false al formulario.
Saludos.