JAVASCRIPT VALIDAR CAMPO TEXTO NO VACÍO. QUE VALOR SEA NUMÉRICO. O CORREO ELECTRÓNICO EN FORMULARIOS. EJEMPLOS (CU01182E)

Documentos relacionados
FORMULARIOS JAVASCRIPT: EJEMPLOS DE DOCUMENT.FORMS Y ELEMENTS. ACCESO DIRECTO A FORMULARIOS Y CAMPOS CON ID Y NAME (CU01175E)

HTMLELEMENT JAVASCRIPT. MÉTODOS FOCUS, BLUR. SUBMIT FORMULARIOS: DETENER ENVÍO. ONSUBMIT RETURN. EJEMPLOS. (CU01181E)

DOM O DOCUMENT OBJECT MODEL JAVASCRIPT. QUÉ ES? PARA QUÉ SIRVE? EL W3C. ARBOL DE NODOS. PARENT Y CHILD. EJEMPLOS (CU01123E)

WHILE JAVASCRIPT. DO WHILE. CONTINUE PARA SALTAR BUCLE. BUCLES CON LABEL (ETIQUETA O NOMBRE). EJEMPLOS (CU01132E)

SETATTRIBUTE Y GETATTRIBUTE JAVASCRIPT. DIFERENCIAS DE SINTAXIS PROPIEDADES CON HTML. EJEMPLO MAXLENGTH. (CU01176E)

FOR JAVASCRIPT (BUCLES) CONOCER TAMAÑO DE UN ARRAY CON LENGTH. BREAK PARA DETENER EJECUCIÓN. EJEMPLOS Y EJERCICIOS (CU01131E)

CREAR OBJETOS JAVASCRIPT CON THIS Y NEW. EJEMPLOS PARA ENTENDER QUÉ SON LOS OBJETOS Y PARA QUÉ SIRVEN. (CU01143E)

JAVASCRIPT CREATEELEMENT, CREATETEXTNODE, APPENDCHILD. MODIFICAR PROPIEDAD ONCLICK CON JAVASCRIPT (CU01140E)

FUNCIONES MANEJADORAS DE EVENTOS Y ADDEVENTLISTENER CON PARÁMETROS. THIS.STYLE IS UNDEFINED (CU01177E)

DISABLED JAVASCRIPT EN INPUT TEXT, SUBMIT, BUTTON, SELECT, LINK, STYLE... IMPEDIR ENVÍO DUPLICADO FORM. DESACTIVAR CSS (CU01183E)

JAVASCRIPT: ACCEDER A ELEMENTOS POR ID. GETELEMENTBYID. DOCUMENT.ALL. CAMBIAR IMAGEN IMG SRC (CU01127E)

FUNCIÓN EVAL JAVASCRIPT. GETELEMENTSBY CLASSNAME. EJEMPLO CÓDIGO CALCULADORA SIMPLE (CU01133E)

NODELIST JAVASCRIPT. DIFERENCIAR NODELIST Y ARRAY. ACCEDER AL TEXTO DE NODOS CON TEXTCONTENT, INNERTEXT (CU01136E)

PARÉNTESIS EN EXPRESIONES REGULARES JAVASCRIPT. FLAGS. MÉTODOS EXEC, TEST, MATCH, SEARCH, REPLACE, SPLIT. EJEMPLOS (CU01155E)

FUNCIONES JAVASCRIPT PARA CADENAS DE TEXTO: TOUPPERCASE, TOLOWERCASE, CHARAT, SUBSTRING, SLICE, INDEXOF, SPLIT, REPLACE, REPLACEALL.

STATIC JAVASCRIPT. PROPIEDADES Y MÉTODOS ESTÁTICOS O DE CLASE. EJERCICIO. CÓDIGO EJEMPLOS BÁSICOS (CU01148E)

EFECTOS JAVASCRIPT VISUALES, DE IMÁGENES, TEXTO... RECURSIÓN. SETTIMEOUT NO FUNCIONA EN BUCLES FOR, WHILE,? (CU01166E)

IMAGE JAVASCRIPT. NEW IMAGE. COMPLETE, NATURALWIDTH. OBTENER TODAS LAS IMÁGENES DE UNA WEB CON DOCUMENT.IMAGES (CU01186E)

SELECTOR DE CLASES CSS: CLASS. APLICAR ESTILOS CSS EN DISTINTOS LUGARES DE UNA WEB. EJEMPLOS. (CU01012D)

ADDEVENTLISTENER JAVASCRIPT. REMOVE. ATTACHEVENT. THIS EN EVENTOS. PROPAGACIÓN. BUBBLING. CAPTURA. (CU01158E)

JAVASCRIPT HOISTING. ERRORES FRECUENTES DE PROGRAMADORES Y CONSEJOS. PROBLEMAS PRECISIÓN DECIMAL (CU01190E)

A continuación el código del formulario Registro.html y del archivo validar.js de javascript:

QUERYSELECTORALL JAVASCRIPT Y QUERYSELECTOR. ACCEDER A ELEMENTOS POR SELECTORES CSS. EJEMPLOS (CU01134E)

ERROR, THROW Y TRY CATCH JAVASCRIPT. MESSAGE, FILENAME, LINENUMBER. EVAL Y RANGEERROR, REFERENCE ERROR. EJEMPLOS (CU01187E)

OBJETO WINDOW JAVASCRIPT. PROPIEDADES: NAME, INNERWIDTH, LENGTH,, OPENER, OUTERHEIGHT, PAGEXOFFSET, SCREENX (CU01173E)

ACCEDER A NODOS HIJOS JAVASCRIPT Y SUS ATRIBUTOS. NODENAME, NODETYPE Y NODEVALUE O TEXTO DEL NODO. EJEMPLOS (CU01126E)

OPERADOR CONDICIONAL TERNARIO TIPO IF CON INTERROGACIÓN (JAVASCRIPT, JAVA, ETC.) Y DOS PUNTOS. EJEMPLOS (CU01152E)

EMPEZAR A USAR CSS A PARTIR DE UN DOCUMENTO HTML CON UNA ESTRUCTURA BÁSICA CON TÍTULOS, LISTAS, ETC. (CU01007D)

CAPTURAR EVENTOS DE TECLADO JAVASCRIPT. TECLA PULSADA. FROMCHARCODE. KEYCODE, WICH. (CU01161E)

SWITCH JAVASCRIPT. SELECCIÓN ENTRE ALTERNATIVAS. DIAGRAMA DE FLUJO Y EJEMPLO DE APLICACIÓN. (CU01120E)

CONSTRUCTORES JAVASCRIPT. CREAR OBJETOS VACÍOS. AÑADIR PROPIEDADES Y MÉTODOS. OBJETOS ÚNICOS O SINGLETON. EJEMPLOS (CU01145E)

PROTOTYPE JAVASCRIPT. EJEMPLOS DE PROTOTIPOS Y HERENCIA. CÓMO USARLOS. SINTAXIS. EFICIENCIA. (CU01147E)

REQUEST EN PHP. DIFERENCIAS Y VENTAJAS E INCONVENIENTES ENTRE GET, POST Y REQUEST. EJERCICIOS RESUELTOS Y EJEMPLOS. (CU00835B)

EJEMPLOS JAVASCRIPT OPERADORES INCREMENTO Y DECREMENTO. ASIGNACIÓN Y ASIGNACIÓN COMPUESTA. (CU01118E)

IF ELSE, IF ELSE IF JAVASCRIPT. CONDICIONALES DEL FLUJO O ESTRUCTURAS DE DECISIÓN. EJEMPLOS. EJERCICIOS. (CU01119E)

CLOSURES JAVASCRIPT. EJEMPLOS. CONCEPTO: QUÉ SON Y PARA QUÉ SIRVEN. RETARDO DE EJECUCIÓN CON SETTIMEOUT Y CLOSURES. (CU01169E)

EXPRESIONES REGULARES JAVASCRIPT. REGEX. NEW. CARÁCTER ESPECIAL. NÚMERO, LETRA, ESPACIO BLANCO. (CU01154E)

FUNCIONES ARRAYS JAVASCRIPT. PUSH, SORT (ORDENAR NÚMEROS), CONCAT, JOIN, POP, SHIFT, SLICE, SPLICE. (CU01153E)

ENVÍO DE DATOS DE UN FORMULARIO CON PHP. MÉTODOS GET Y POST. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00832B)

VARIABLES STRING JAVASCRIPT. DEBEN USARSE COMILLAS SIMPLES O DOBLES? CARACTERES DE ESCAPE \N \T.LENGTH (CU01114E)

Introducción al desarrollo web (idesweb)

TIPOS DE DATOS EN JAVASCRIPT. TIPOS PRIMITIVOS Y OBJETO. SIGNIFICADO DE UNDEFINED, NULL, NAN (CU01112E)

HERENCIA JAVASCRIPT: EJEMPLO CON CÓDIGO BÁSICO. JERARQUÍA DE CLASES EN CADENA DE PROTOTIPOS. (CU01149E)

HTML dinámico: Procesado de Formularios

escuela técnica superior de ingeniería informática

Introducción al desarrollo web (idesweb) - 3 a ed.

REDIRECCIONAR Y RECARGAR WEBS CON JAVASCRIPT. WINDOW.LOCATION. HREF, HOSTNAME, ASSIGN, RELOAD, REPLACE. (CU01171E)

Implantación de Sistemas Introducción al PHP con Dreamweaver CS4

EVENTOS JAVASCRIPT. TIPOS. PROPAGACIÓN. MODELOS. MANEJADOR O EVENT HANDLER. CONFIRM. EJEMPLO. (CU01157E)

FORMULARIOS HTML. BOTONES: ENVÍO SUBMIT, RESTABLECIMIENTO RESET, IMAGEN Y CONTENIDO (BUTTON). (CU00724B)

HTML Dinámico: Procesado de Formularios - Validación en Cliente -

QUÉ SIGNIFICA JAVASCRIPT VOID (0) Y JAVASCRIPT: EN HREF? QUÉ DIFERENCIA RETURN FALSE Y PREVENTDEFAULT? (CU01184E)

TUTORIAL SOBRE EXPRESIONES REGULARES EN JAVASCRIPT PARA VALIDACIÓN DE CAMPOS EN FORMULARIOS HTML:

DISEÑO WEB CSS CON DOS, TRES O MÁS COLUMNAS CON FLOAT. WIDTH EN PORCENTAJES NO FUNCIONA? TIPOS DE ANCHO. EJEMPLOS. (CU01036D)

DEPURAR JAVASCRIPT. CONSOLE.LOG. DEBUG DE ERRORES CON FIREFOX (FIREBUG), CHROME, INTERNET EXPLORER. IDES. (CU01151E)

EJEMPLO RELOJ JAVASCRIPT. SETTIMEOUT, CLEARTIMEOUT, SETINTERVAL, REQUEST ANIMATIONFRAME. (CU01164E)

FORMULARIOS EN HTML. OPCIONES. CASILLAS DE VERIFICACIÓN CHECKBOX. BOTONES DE RADIO. LISTAS DE OPCIONES SELECT, OPTGROUP, OPTION.

Validación de formularios con HTML5 y JavaScript

una nueva página (recordar que en este curso no se ve como programar en el servidor) Todo los formularios que implemento y los que usted implementará

FUNCIONES JAVASCRIPT. CONCEPTO. PARÁMETROS O ARGUMENTOS Y TIPOS. PASO POR VALOR. RETURN. EJEMPLOS. (CU01122E)

COLUMNAS CSS: COLUMN-COUNT, COLUMN-WIDTH, COLUMNS, COLUM-GAP Y COLUM-RULE. EJEMPLOS PRÁCTICOS (CU01057D)

API DRAG AND DROP HTML Y JAVASCRIPT. EVENTOS. EFECTOS. DATATRANSFER. EJEMPLOS. ARRASTRAR Y SOLTAR. (CU01196E)

EFECTO CSS DE ESQUINAS REDONDEADAS: BORDER- RADIUS. BORDER-LEFT- TOP-RADIUS. EJEMPLOS CIRCULO O ELIPSE (CU01058D)

MÉTODOS DE WINDOW JAVASCRIPT. EFECTOS. CONFIRM, PROMPT, OPEN, MOVEBY, MOVETO, FOCUS, RESIZETO, CLOSE (CU01174E)

Z-INDEX CSS NO FUNCIONA? CONTROL DE SUPERPOSICIÓN DE ELEMENTOS COMO CAPAS, DIV O IMÁGENES (CU01039D)

GUÍA DE TRABAJO N 4 - DESARROLLO WEB Educación Media Fortalecida SED/SENA Ing. Néstor Raúl Suarez Perpiñan Página 1 de 8

THIS JAVASCRIPT: SIGNIFICADOS. AMBITOS (SCOPE). ANIDAMIENTO. NAMESPACES. EJEMPLO EJERCICIO RESUELTO. (CU01168E)

CONVERTIR STRING A NUMBER JAVASCRIPT. REDONDEAR. TOFIXED, ISNAN, TOPRECISION, VALUEOF. PARSEINT Y PARSEFLOAT (CU01156E)

QUÉ ES CSS? HTML, CONOCIMIENTO PREVIO PARA PODER APRENDER CSS DESDE CERO (CU01003D)

JERARQUÍA DE OBJETOS JAVASCRIPT. FORMS, ELEMENTS, IMAGES, LINKS. NAVIGATOR: USERAGENT, GEOLOCATION, ONLINE. (CU01170E)

ESTILOS Y HERENCIA EN TABLAS CSS. WIDTH, HEIGHT, FONT-SIZE Y OVERFLOW EN TABLAS. PROPIEDAD BORDER- COLLAPSE (CU01051D)

PROPIEDADES VISIBILITY (VISIBLE, HIDDEN, COLLAPSE) Y OVERFLOW CSS. SCROLL. OVERFLOW- X Y OVERFLOW-Y. EJEMPLOS (CU01038D)

Programación Hipermedia I

CONCEPTO DE HERENCIA EN HOJAS DE ESTILO EN CASCADA CSS. QUÉ ES? FORZAR HERENCIA CON INHERIT. EJEMPLOS. (CU01013D)

XMLHTTPREQUEST AJAX: MÉTODOS OPEN, SEND, GETRESPONSEHEADER, SETREQUESTHEADER (CU01209F)

Localizar direcciones en Google Maps con PHP

GUÍA DE ESTILO JAVASCRIPT PARA COMENTARIOS DE ETC. EJEMPLOS (CU01192E)

DE LA ESTRUCTURA HTML Y SU SEMÁNTICA AL MODELO DE CAJAS CSS. ELEMENTOS BLOCK Y ELEMENTOS INLINE (CU01008D)

ANIMACIONES CSS. TRANSITION-PROPERTY, TRANSITION-DURATION, TRANSITION-TIMING- FUNCTION Y TRANSITION- DELAY. EJEMPLOS. (CU01063D)

Manejo de eventos en JavaScript WEB-TECHNOLOGIES

2- Formularios y JavaScript Course: Developing web- based applica=ons

DIFERENCIAS ENTRE NAVEGADORES EN RESPUESTAS A JAVASCRIPT (FIREFOX, EXPLORER, CHROME, SAFARI ). JAVASCRIPT EN LÍNEA. (CU01108E)

CSS VERTICAL-ALIGN MIDDLE NO FUNCIONA? CENTRAR VERTICALMENTE UNA IMAGEN, TEXTO, DIV, ETC. EJEMPLOS (CU01043D)

COMPARAR CADENAS CON PHP STRCMP, == Ó ===? NO DISTINGUIR MAYÚSCULAS O MINÚSCULAS: STRCASECMP. RELLENAR CON STR_PAD. (CU00829B)

DPWEB I, Carrito de Compras Guardar, Ing. Tomas Urbina. Carrito de compras con PHP y MYSQL

PHP Avanzado - Listas enlazadas dinámicas -

Web Service: Consulta de Arribo de Ómnibus Manual de referencia

CSS EFECTO SOMBRA CON TEXT-SHADOW Y BLUR, TEXT-OVERFLOW CLIP, ELLIPSIS Y LINE-HEIGHT (INTERLINEADO) (CU01041D)

Unidad Técnicas para generar formularios, validarlos y procesarlos en el mismo documento web. J.J.

DEGRADADOS CSS. EFECTO LINEAL Y RADIAL. LINEAR-GRADIENT. ANGULOS CSS: UNIDADES ANGULARES DEG, GRAD, TURN, RAD. (CU01060D)

LÍNEAS SEPARADORAS. ETIQUETA <HR>. COMENTARIOS EN HTML. ATRIBUTOS SIZE, WIDTH, NOSHADE (DEPRECATED). EJEMPLOS (CU00716B)

Desarrollo de Aplicaciones Web con PHP. Javier Enciso

XMLHTTPREQUEST AJAX: PROPIEDADES STATUS, ONREADYSTATECHANGE, READYSTATE, RESPONSETEXT O XML (CU01207F)

Tema 11: jquery y validación compleja en cliente

PRACTICA JSP SEMANA 2

ESTRUCTURAS DE CONTROL REPETITIVAS

Tutorial de enlace entre Formulario Web y Servicio Web REST. Programación en Internet

API CANVAS HTML Y JAVASCRIPT. EJEMPLOS. DIBUJAR CÍRCULOS, FORMAS, GRÁFICOS, ANIMACIONES, JUEGOS, ETC. (CU01195E)

Transcripción:

APRENDERAPROGRAMAR.COM JAVASCRIPT VALIDAR CAMPO TEXTO NO VACÍO. QUE VALOR SEA NUMÉRICO. EMAIL O CORREO ELECTRÓNICO EN FORMULARIOS. EJEMPLOS (CU01182E) Sección: Cursos Categoría: Tutorial básico del programador web: JavaScript desde cero Fecha revisión: 2029 Resumen: Entrega nº82 del Tutorial básico JavaScript desde cero. Autor: César Krall

VALIDACIÓN DE FORMULARIOS CON JAVASCRIPT Un uso habitual e importante de JavaScript es servir paraa realizar la validación de formularios. Cuando un usuario rellena un formularioo y pulsa en el botón enviar, comprobaremos con JavaScript si ha introducido los datos mínimos requeridos y con el formato requerido. Si no es así, abortaremos el envío del formulario y mostraremos los avisos correspondientess evitando enviar la información al servidor. El envío de la información al servidor supondría una demora en la respuesta ( enviar la información, realizar la validación en el servidor, enviar la respuesta ) y daría la impresión de que la página web está lenta. Con JavaScript podemos lograr una respuesta inmediata, haciendo que la navegación para el usuario de nuestra página web sea satisfactoria. La validación normalmente consiste en detectar el evento submit del formulario y derivar la gestión del mismo a una funciónn manejadora que se encarga de revisar el contenido del formulario. Si en esa revisión se detectan errores en los formatos o falta de datos, el envío se aborta y se muestra un mensaje de aviso al usuario. Si en la revisión se considera que está todo conforme, se procede al envío del formulario. La validación no supone más que una aplicación práctica de los conocimientos que hemos adquirido durante el curso (acceso a elementos del DOM, manejo de objetos, expresiones regulares, etc.). La invocación a la validación se puede enfocar de distintas maneras. La forma quizás preferible es usar addeventlistener y preventdefault: document.nombredelformulario. addeventlistener('submit', validarformulario); function validarformulario(evobject) { evobject.preventdefault(); //Evita el envío del formulario hasta comprobar Otra forma que ha venido siendo bastante utilizada es capturar el evento en el código HTML para que devuelva true (en cuyo caso se enviará el formulario) o false (en cuyo caso no se enviará): function validarformulario() { if ( ) { return true; // Si se verifican las condiciones enviar formulario else { return false; /// Si no se verifican las condiciones no se enviará el formularioo --- --- <form action="" method="" id="" name="" onsubmit="return validarformulario ()">

VALIDAR QUE UN CAMPO NO ESTÁ VACÍO En muchos formularios se requerirá que uno o varios campos no se encuentren vacíos. Por ejemplo si se trata de una reserva de hotel, será necesario que datos como el nombre de la persona que realiza la reserva no se encuentren vacíos. También podemos comprobar que no se hayan introducido sólo espacios en blanco (que son caracteres pero no aportan información), u otro tipo de comprobaciones más elaboradas usando expresiones regulares. Escribe este código que es un ejemplo de comprobación de que un campo no esté vacío o contenga sólo espacios en blanco y comprueba sus resultados: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html><head><title>ejemplo aprenderaprogramar.com</title><meta charset="utf-8"> <style type="text/css">body {background-color:yellow; font-family: sans-serif; label{color: maroon; display:block; padding:5px; </style> <script type="text/javascript"> window.onload = function () { document.formulariocontacto.nombre.focus(); document.formulariocontacto.addeventlistener('submit', validarformulario); function validarformulario(evobject) { evobject.preventdefault(); var todocorrecto = true; var formulario = document.formulariocontacto; for (var i=0; i<formulario.length; i++) { if(formulario[i].type =='text') { if (formulario[i].value == null formulario[i].value.length == 0 /^\s*$/.test(formulario[i].value)){ alert (formulario[i].name+ ' no puede estar vacío o contener sólo espacios en blanco'); todocorrecto=false; if (todocorrecto ==true) {formulario.submit(); </script></head> <body><div id="cabecera"><h1>portal web aprenderaprogramar.com</h1><h2>didáctica y divulgación de la programación</h2> </div> <!-- Formulario de contacto --> <form name ="formulariocontacto" class="formulariotipo1" method="get" action="http://aprenderaprogramar.com"> <p>si quieres contactar con nosotros envíanos este formulario relleno:</p> <label for="nombre"><span>nombre:</span> <input id="nombre" type="text" name="nombre" /></label> <label for="apellidos"><span>apellidos:</span> <input id="apellidos" type="text" name="apellidos" /></label> <label for="email"><span>correo electrónico:</span> <input id="email" type="text" name="email" /></label> <label><input type="submit" value="enviar"><input type="reset" value="cancelar"></label> </form></body></html>

Recordar lo que explicamos en los apartados del curso dedicados a expresiones regulares. /^\s*$/ define una expresión regular donde \s es el espacio en blanco, ^ indica comienzo de cadena con ese carácter, * indica repetición cualquier número de veces y $ señala el carácter de terminación de cadena. Por tanto la expresión regular indica las cadenas que empiezan con espacio en blanco, siguen con cualquier número de espacios en blanco y terminan con un espacio en blanco. El método test devuelve true si la cadena hace match con la expresión regular o false si la cadena no hace match. VALIDAR QUE UN CAMPO CONTIENE UN VALOR NUMÉRICO En ocasiones se puede requerir que un campo contenga un valor numérico. Las comprobaciones se pueden hacer basándonos en expresiones regulares, basándonos en la función isnan, o basándonos en que el valor numérico debe ser mayor, menor, mayor o igual, menor o igual que otro valor numérico de referencia. Recordar que isnan(x) devuelve true si x es un valor no asimilable a un número o false si el valor es asimilable a un número. La función isnan es laxa en el sentido de que tratará de asimilar a un número todo lo que sea posible. Por ejemplo alert(isnan(-3.23)); devuelve false (se considera -3.23 un número). Esto puede ser interesante en algunas ocasiones pero no interesante en otras. Ejemplo: pedimos la altura respecto al nivel del mar, siendo 0 el nivel del mar, un valor positivo una altura sobre el nivel del mar y un valor negativo una altura por debajo del nivel del mar (por ejemplo la altura de un submario). En este caso nos interesa usar isnan. Otro ejemplo: pedimos la edad de una persona. En este caso será preferible usar expresiones regulares, por ejemplo comprobar que el valor del campo se corresponda con uno ó dos dígitos, lo que haría válido 5, 44, 88, pero haría inválidos 148, -3.23 ó 5.25. Escribe este código que es un ejemplo de validaciones con campos numéricos y comprueba sus resultados. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <title>ejemplo aprenderaprogramar.com</title> <meta charset="utf-8"> <style type="text/css"> body {background-color:yellow; font-family: sans-serif; label{color: maroon; display:block; padding:5px; </style> <script type="text/javascript"> window.onload = function () { document.formulariocontacto.nombre.focus(); document.formulariocontacto.addeventlistener('submit', validarformulario);

function validarformulario(evobject) { evobject.preventdefault(); var todocorrecto = true; var formulario = document.formulariocontacto; if (isnan(formulario.edad.value)==true /^[1-9]\d$/.test(formulario.edad.value)==false ) {alert ('Edad no valida'); todocorrecto=false; if (isnan(formulario.altura.value)==true formulario.altura.value<=0 formulario.altura.value>=2.50) { alert ('Altura no valida'); todocorrecto=false; if (todocorrecto ==true) {formulario.submit(); </script></head> <body><div id="cabecera"><h1>portal web aprenderaprogramar.com</h1><h2>didáctica y divulgación de la programación</h2></div> <!-- Formulario de contacto --> <form name ="formulariocontacto" class="formulariotipo1" method="get" action="http://aprenderaprogramar.com"> <p>si quieres contactar con nosotros envíanos este formulario relleno:</p> <label for="nombre"><span>nombre:</span> <input id="nombre" type="text" name="nombre" /></label> <label for="apellidos"><span>edad:</span> <input id="edad" type="text" name="edad" /></label> <label for="email"><span>altura:</span> <input id="altura" type="text" name="altura" /></label> <label><input type="submit" value="enviar"><input type="reset" value="cancelar"></label> </form></body></html> El resultado esperado es que el formulario no se envíe si la edad no está formada por dos dígitos (no sería válido 124 ni -3.23) o si la altura es un valor negativo, mayor o igual a 2.50 ó no tiene formato numérico. VALIDAR UNA DIRECCIÓN DE EMAIL Para comprobar que el usuario introduce una dirección de email válida podemos hacer distintos tipos de comprobaciones. La más básica es comprobar que la cadena contiene cualquier número de caracteres seguido del carácter @ segudio de cualquier número de caracteres, seguido de un punto, y seguido de cualquier número de caracteres. Esta validación es amplia y no aceptaría la mayor parte de direcciones no válidas, por ejemplo no se aceptaría <<andres@gmailcom>> porque le falta el punto. En general será suficiente usar una expresión regular simple del tipo: /\S+@\S+\.\S+/ En muchas páginas de internet se encuentran expresiones más complejas que tratan de tener en cuenta posibilidades menos frecuentes de formato de correo electrónico, por ejemplo esta: / [a-z0-9!#$%&'*+/=?^_`{ ~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{ ~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/ Las comprobaciones se harían de la misma forma a como hemos visto en los ejemplos anteriores.

EJERCICIO Dado el siguiente código HTML que contiene un formulario con tres campos (nombre, apellidos y email): <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <title>ejemplo aprenderaprogramar.com</title> <meta charset="utf-8"> <style type="text/css">body {background-color:yellow; font-family: sans-serif; label{color: maroon; display:block; padding:5px; </style> </head> <body> <div id="cabecera"><h1>portal web aprenderaprogramar.com</h1><h2>didáctica y divulgación de la programación</h2> </div> <!-- Formulario de contacto --> <form name ="formulariocontacto" class="formulariotipo1" method="get" action="http://aprenderaprogramar.com"> <p>si quieres contactar con nosotros envíanos este formulario relleno:</p> <label for="nombre"><span>nombre:</span> <input id="nombre" type="text" name="nombre" /></label> <label for="apellidos"><span>apellidos:</span> <input id="apellidos" type="text" name="apellidos" /></label> <label for="email"><span>correo electrónico:</span> <input id="email" type="text" name="email" /></label> <label><input type="submit" value="enviar"><input type="reset" value="cancelar"></label> </form> </body> </html> Crear el código JavaScript que cumpla con las siguientes funciones: a) Si la longitud (número de caracteres) del campo nombre es mayor de 15 o igual a cero, el formulario no se enviará. b) Si la longitud (número de caracteres) del campo apellidos es mayor de 30 o igual a cero, el formulario no se enviará. c) Si la longitud (número de caracteres) del campo email es mayor de 35 o igual a cero, el formulario no se enviará. Si el email no contiene el carácter @ el formulario no se enviará. d) Si se produce cualquiera de las circunstancias anteriores, debe aparecer un recuadro con color de fondo naranja y texto negro a la derecha de la casilla de introducción de datos, informando del problema detectado en ese campo (si es que ese campo presenta algún problema). Nota: estos mensajes se deben mostrar sólo si el campo es erróneo después de pulsado el botón enviar, y deben desaparecer si el usuario realiza un nuevo intento y el campo es correcto. Los mensajes se incorporarán al DOM (no serán mensajes usando alert). Ejemplo de ejecución. El usuario deja el nombre, apellidos y correo electrónico vacíos. A la derecha de las casillas de introducción de datos aparecerá: El nombre no puede estar vacío. Los apellidos no pueden estar vacíos. El correo electrónico no puede estar vacío.

Ahora el usuario introduce nombre: <<Juan Manuel de Todos los Santos Efímeros Ecuánimes de Todos los días de la Tercera Edad>>. Como apellidos introduce: <<Suárez>>. Y como correo electrónico introduce: <<juanmanueldetodoslosantosefimerosecuanimesdetodoslosdias@gmail.com>>. Pulsa enviar. A la derecha de la casilla de introducción del nombre debe aparecer: Nombre demasiado largo. Máximo 15 caracteres. A la derecha de apellidos no aparecerá nada porque el apellido es correcto. A la derecha del correo electrónico debe aparecer: Correo electrónico demasiado largo. Máximo 35 caracteres. Ahora el usuario escribe como nombre: Juan Manuel. Como apellidos: Suárez. Y como correo electrónico juanmanuel@gmail.com. Pulsa enviar y el formulario es enviado. Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com. Próxima entrega: CU01183E Acceso al curso completo en aprenderaprogramar.com -- > Cursos, o en la dirección siguiente: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&itemid=206