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

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

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

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

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

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

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

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

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

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)

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

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)

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

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

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

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

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

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

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

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

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

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

HTML dinámico: Procesado de Formularios

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

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

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

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

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

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

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

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

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

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

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

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

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

FUNDAMENTOS DE ROBÓTICA. Maestro: Ing. Marco Antonio López Paredes REPORTE DE PROGRAMA: ANALIZAR LOS OBSTACULOS DE ROBOTS EN UN TABLERO

JavaScript: Objetos del documento

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

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

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

MENÚ DESPLEGABLE CSS HORIZONTAL. EFECTO DROPDOWN CON ITEMS Y SUBITEMS. USO DE FLOAT, DISPLAY, POSITION EJEMPLO DE CÓDIGO.

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

CONCEPTOS DE MARGEN Y RELLENO CSS. DIFERENCIAS ENTRE MARGIN Y PADDING CSS CON EL BOX MODEL. EJEMPLOS (CU01028D)

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

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

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

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

EJERCICIO1.HTML <html> <head> <script language="javascript"> function procesar(){ var n = document.getelementbyid("nombre"); var e =

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

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

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

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

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

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

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

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

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

PROPIEDAD DISPLAY CSS. INLINE, BLOCK, NONE, LIST-ITEM, INLINE-BLOCK. EJERCICIOS DE EJEMPLO RESUELTOS EN CÓDIGO CSS (CU01033D)

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

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

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

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

Introducción al desarrollo web (idesweb)

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

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

Manejo de eventos en JavaScript WEB-TECHNOLOGIES

CONCEPTO FLOAT CSS. NONE, LEFT, RIGHT Y CENTRAR?. COLOCAR TEXTO ALREDEDOR DE UNA IMAGEN. EJEMPLOS DE POSICIONAMIENTO FLOTANTE (CU01034D)

PADDING Y MARGIN CSS. TOP, RIGHT, BOTTOM Y LEFT. MARGIN NEGATIVO Y CENTRAR CON MARGIN AUTO. EJEMPLOS (CU01029D)

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

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

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

CSS BACKGROUND- POSITION, BACKGROUND- ATTACHMENT, BACKGROUND-CLIP, ORIGIN Y SIZE. SHORTAND BACKGROUND. EJEMPLOS (CU01031D)

Formulario de Contacto

Contenido. Introducción CSS dinámico Ejemplos. Programación en Internet DLSI - Universidad de Alicante 1

EFECTO SOMBRA CSS CON BOX-SHADOW. SOMBRA INTERIOR INSET. BLUR O DIFUMINADO, SPREAD. EJEMPLOS Y EJERCICIOS RESUELTOS (CU01059D)

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

PHP Avanzado - Listas enlazadas dinámicas -

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á

Informática. JavaScript: Eventos. Fco J. Martín Mateos Carmen Graciani

Catedra de Base de Datos

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

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

PROPIEDADES CSS WIDTH Y HEIGHT. VALOR POR DEFECTO AUTO (AUTOMÁTICO) EJEMPLOS PRÁCTICOS Y EJERCICIOS RESUELTOS (CU01025D)

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

Formularios. Botón. Cuadros de texto

Construcción de formularios en HTML. Formularios. Bases de Datos 2012/2013. Luis Valencia Cabrera

Anexo B. Archivos CSS. tipografia.css. Anexos. Lourdes Fernandez Ramirez tipografia.css * { padding: 0; margin: 0; body { text-align: center;

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

SHORTAND: NOTACIÓN CSS ABREVIADA. BORDER- WIDTH Y THIN, MEDIUM, THICK, BORDER-COLOR Y TRANSPARENT. BORDER. EJEMPLOS. (CU01027D)

JavaScript: Eventos. Francisco J. Martín Mateos Carmen Graciani Diaz

Producción Digital I

Producción Digital I. Clase 8. Wenceslao Zavala

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

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

QUÉ ES Y PARA QUÉ SIRVE AJAX? JAVASCRIPT ASÍNCRONO, XML Y JSON. VENTAJAS E INCONVENIENTES DE AJAX. XMLHTTPREQUEST. EJEMPLO.

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

Transcripción:

APRENDERAPROGRAMAR.COM HTMLELEMENT JAVASCRIPT. MÉTODOS FOCUS, BLUR. SUBMIT FORMULARIOS: DETENER ENVÍO. ONSUBMIT RETURN. EJEMPLOS. (CU01181E) Sección: Cursos Categoría: Tutorial básico del programador web: JavaScript desde cero Fecha revisión: 2029 Resumen: Entrega nº81 del Tutorial básico JavaScript desde cero. Autor: César Krall

SIGNIFICADOS DE FOCUS Y BLUR Hemos de distinguir varios posibles usos de focus y blur. Como sabemos, focus hace alusión a que un elemento HTML toma el foco en la página web (bien porque el usuario haga click sobre él, bien porque al pulsar la tecla de tabulación el foco llegue hasta él). Tomar el foco indica que se puede escribir sobre el elemento (si es un campo de texto de un formulario) o que el elemento está seleccionado (si es otro tipo de elemento como una imagen). Vamos a usos: llamar la atención sobre el hecho de que focus y blur pueden tener distintos significados o a) Eventos que podemos capturarr para disparar un código de respuesta (esto ya lo hemos estudiado en apartados anteriores del curso). b) Un método aplicable a objetos de tipo Window (esto ya lo hemos estudiado en apartados anteriores del curso) ). c) Un método aplicable a objetos de tipo HTMLElement (nodos del DOM) para hacerles obtener o perder el foco, siempre que dicho objeto sea susceptible de tener el foco. Hay elementos como un input de un formulario que pueden tener el foco y otros como un span que no pueden tener el foco. La sintaxiss para establecer el foco en un elemento que admite el foco es: nombredelelemento.focus(); La sintaxiss para hacer que un elemento que tenía el foco lo pierda es: nombredelelemento.blur(); Escribe el siguiente código y comprueba sus resultados. Comprueba cómo en él se hace uso por un lado de los eventos focus y blur, y por otro lado del método focus para establecer el foco cuando carga la página en el primer elemento input de tipo text que existee en el formulario. Fíjate también en cómo se manejan los eventos blur y focus para hacer que cuando un input de tipo text recibe el foco, su color de fondo cambie a amarillo, mientras que cuando pierde el foco, su color de fondo cambia a blanco.

<!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 {margin-left:30px; font-family: sans-serif;.estiloform {background-color: #f3f3f3; border: solid 2px black; margin-left:20px; width: 330px; padding:10px;.estiloform label {display: block; width: 120px; float: left; text-align:right; margin-bottom: 35px; padding-right: 20px; br {clear: left; input[type="submit"], input[type="reset"] {margin:25px 5px 10px 5px; </style> <script type="text/javascript"> window.onload = function () { var elegido = false; var elementosinput = document.getelementsbytagname('input'); //Elementos input for (var i=0; i< elementosinput.length; i++) { if (elementosinput[i].type == 'text' && elegido==false) {var elegidoparafoco = elementosinput[i]; elegido=true; if (elementosinput[i].type == 'text') { elementosinput[i].addeventlistener('blur', ponerfondoblanco); elementosinput[i].addeventlistener('focus', ponerfondoamarillo); elegidoparafoco.focus(); elegidoparafoco.style.backgroundcolor='yellow'; function ponerfondoblanco() {this.style.backgroundcolor = 'white'; function ponerfondoamarillo() {this.style.backgroundcolor = 'yellow'; </script> </head> <body><h2>cursos aprenderaprogramar.com</h2><h3>ejemplos JavaScript</h3> <div class="estiloform"> <form name ="formulariocontacto" method="get" action="#"> <label>tratamiento</label> <input type="radio" name="tratamiento" id="tratarsr" value="sr."/>sr. <input type="radio" name="tratamiento" id ="tratarsra" value="sra."/>sra.<br/> <label>nombre</label><input id="nombre" name="nombre" type="text"/><br/> <label>apellidos</label><input id="apellidos" name="apellidos" type="text"/><br/> <label>dirección</label><input id="direccion1" name="direccion1" type="text"/><br/> <label>ciudad</label><select id="ciudad" name="ciudad"> <option value="">elija opción</option> <option value="mexico">méxico D.F. (MX)</option> <option value="madrid">madrid (ES)</option> <option value="santiago">santiago (CL)</option> </select><br/> <label>preferencias</label><input name="libros" type="checkbox" />Libros <input name="peliculas" type="checkbox" />Películas <input type="submit" value="enviar"/> <input type="reset" value="cancelar"/> </form> </div> </body></html> Cuando en una página web el formulario es el elemento principal, se considera una buena práctica (para facilitar que el usuario introduzca los datos) establecer el foco sobre el primer elemento del formulario una vez la página haya cargado.

SIGNIFICADOS DE SUBMIT Al igual que focus y blur pueden ser eventos o métodos de objetos, submit puede ser un evento pero también un método de un formulario. Como sabemos, submit hace alusión al envío de un formulario. Podemos utilizar el evento submit para retrasar el envío del formulario hasta después de haber procesado el evento (de esta forma podemos hacer operaciones previas al envío, por ejemplo una validación). Una vez procesado el evento, procederíamos al envío del formulario. Para que el formulario se envíe o no según los resultados de las operaciones previas al envío añadiremos el parámetro para capturar el evento en la función manejadora y aplicaremos el método preventdefault() que hemos estudiado en anteriores entregas del curso. Este sería un ejemplo de sintaxis: document.forms['nombreformulario'].addeventlistener('submit', funcionmanejadora); function funcionmanejadora(evobject) { evobject.preventdefault(); //Anulamos la acción de defecto if ( ) { //Tareas a realizar si se cumple la condición document.forms['formulariocontacto'].submit(); //Se envía el formulario else { //Tareas a realizar si no se cumple la condición //No se envía el formulario Escribe este código 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 {margin-left:30px; font-family: sans-serif;.estiloform {background-color: #f3f3f3; border: solid 2px black; margin-left:20px; width: 330px; padding:10px;.estiloform label {display: block; width: 120px; float: left; text-align:right; margin-bottom: 35px; padding-right: 20px; br {clear: left; input[type="submit"], input[type="reset"] {margin:25px 5px 10px 5px; </style> <script type="text/javascript"> window.onload = function () { document.forms['formulariocontacto'].addeventlistener('submit', avisarusuario); function avisarusuario(evobject) { evobject.preventdefault(); var nuevonodo = document.createelement('h2'); nuevonodo.innerhtml = '<h2 style="color:orange;">enviando el formulario...</h2>'; document.body.appendchild(nuevonodo); var retrasar = settimeout(procesadentrode2segundos, 1000);

function procesadentrode2segundos() { document.forms['formulariocontacto'].submit(); </script> </head> <body><h2>cursos aprenderaprogramar.com</h2><h3>ejemplos JavaScript</h3> <div class="estiloform"> <form name ="formulariocontacto" method="get" action="http://aprenderaprogramar.com"> <label>tratamiento</label> <input type="radio" name="tratamiento" id="tratarsr" value="sr."/>sr. <input type="radio" name="tratamiento" id ="tratarsra" value="sra."/>sra.<br/> <label>nombre</label><input id="nombre" name="nombre" type="text"/><br/> <label>apellidos</label><input id="apellidos" name="apellidos" type="text"/><br/> <label>dirección</label><input id="direccion1" name="direccion1" type="text"/><br/> <label>ciudad</label><select id="ciudad" name="ciudad"> <option value="">elija opción</option> <option value="mexico">méxico D.F. (MX)</option> <option value="madrid">madrid (ES)</option> <option value="santiago">santiago (CL)</option> </select><br/> <label>preferencias</label><input name="libros" type="checkbox" />Libros <input name="peliculas" type="checkbox" />Películas <input type="submit" value="enviar"/> <input type="reset" value="cancelar"/> </form> </div> </body> </html> El resultado esperado es que cuando se pulsa el botón enviar del formulario, debajo de este aparezca el mensaje Enviando el formulario. Para hacer aparecer este mensaje hemos añadido un nodo al DOM y establecido su contenido con innerhtml. Nota: para que el efecto sea visible hemos introducido un pequeño retraso forzado en el envío del formulario usando un settimeout. Hemos hecho esto para que nos dé tiempo a ver el texto (si la conexión a internet que usemos es muy rápida y no establecemos una pequeña demora no nos daría tiempo a ver el mensaje, ya que este desaparece en cuanto comienza a cargarse la página de destino del formulario). Este retraso no tiene una utilidad práctica, únicamente lo hemos introducido para poder ver cómo podemos dar lugar a la ejecución del evento submit usando el método submit() en el momento en que nosotros deseemos. EJERCICIO Y EJEMPLO Otra forma de detener el envío de un formulario se basa en que si el código de respuesta a un evento submit es el valor booleano false, no se producirá el envío del formulario. En otro caso, sí se producirá el envío. Examina el siguiente código y responde a las cuestiones que se muestran a continuación:

<!DOCTYPE html> <html><head><script> function validarform() { var x = document.forms["elform1"]["nombre"].value; if (x==null x=="") { alert("el formulario no puede enviarse sin rellenar el nombre"); return false; </script></head> <body><form style ="margin:30px;" name="elform1" action="http://aprenderaprogramar.com" onsubmit="return validarform()" method="get"> Nombre: <input type="text" name="nombre"> <input type="submit" value="enviar"> </form> </body></html> a) Qué cometido cumple este código? b) Qué ocurre si en lugar de onsubmit="return validarform()" escribes onsubmit="validarform()"? Por qué? c) Si x no es null ni es vacío, qué devuelve la función validarform()? Qué implicaciones tiene esto en relación al envío del formulario? Para comprobar si tus respuestas y código son correctos puedes consultar en los foros aprenderaprogramar.com. Próxima entrega: CU01182E 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