Scripting en el cliente: Javascript. Tecnologías Web

Documentos relacionados
Manejo de eventos en JavaScript WEB-TECHNOLOGIES

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

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

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

Formularios en HTML 09/02/2015. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos

Unidad Didáctica 2 GENERACIÓN DE DOCUMENTOS WEB CON GUIONES DE SERVIDOR

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

Formularios en HTML. Grupo de Ingeniería del Software. Departamento de Lenguajes y Sistemas Informáticos. October 11

PHP Avanzado - Listas enlazadas dinámicas -

Diseño de Aplicaciones Web: JavaScript Marzo de 2015 Diseño de Aplicaciones Web 1

Formularios en HTML 03/02/2017. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos

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

Formularios HTML. Desarrollo de Aplicaciones Web Departamento Informática y Sistemas Universidad de Murcia Curso 2013/2014

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

En este tema vamos a ver qué son los formularios, para qué se utilizan, y qué elementos pueden contener.

Aplicaciones Web. Aplicaciones Distribuidas

JavaScript. Tema 3. Texto. Parte I: El núcleo del lenguaje. Interfaz básico con el navegador.

Modelo de objetos de documento

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Los formularios irán delimitados por las etiquetas <FORM> y </FORM>, la cual tiene dos parámetros:

Primer Seminario. Paradigmas de Programación. Curso Departamento de Informática Universidad de Valladolid

HTML Dinámico: JavaScript. HTML Dinámico: JavaScript. Grupo de Ingeniería del Software. Departamento de Lenguajes y Sistemas Informáticos HTTP TCP/IP

HTML: Formularios. Francisco J. Martín Mateos Carmen Graciani Díaz. Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla

Introducción al desarrollo web (idesweb)

Tema 3, parte 5. Estilos dinámicos. Texto. Cambio de estilos. Animaciones.

Informática General Cátedra: Valeria Drelichman Pedro Paleo Leonardo Nadel Norma Morales

PRÓLOGO...13 CAPÍTULO 1. INTRODUCCIÓN A AJAX...17

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

hipervinculos La página que rescata el valor pasado como parámetro es la siguiente: <html> <head> <title>problema</title> </head> <body> <?

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

Desarrollo de sitios web con PHP y MySQL

JavaScript: Introducción

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

HTML, PHP y bases de datos

Programación Hipermedia I

JavaScript. El modelo de objetos. Tecnologías web 17. El modelo de objetos de JavaScript. Los objetos del navegador. Los objetos del navegador

CONTROLES FORMULARIOS PRIMERA PARTE

Lenguajes de Script. Qué son los Lenguajes de Script?

6º Unidad Didáctica. Javascript. Eduard Lara

Tema: Creación de Formularios HTML

Índice INTRODUCCIÓN...13

Programación Web Tema 3.2 Java Script Estructura del Lenguaje. Ramón Alcarria ETSI en Topografía, Geodesia y Cartografía - UPM

HTML dinámico: Javascript

Introducción a AJAX. Eduardo Ostertag Jenkins, Ph.D. OBCOM INGENIERIA S.A. (Chile)

Node.JS Raspberry Pi (RPi) 2015/05/08 Juan V. Capella

Localizar direcciones en Google Maps con PHP

Métodos GET vs POST del HTTP

AGRADECIMIENTOS INTRODUCCIÓN... 17

PHP. Introducción (1) Introducción (3) Introducción (2) PHP 1

A continuación se confeccionara un formulario para el ingreso de un nombre y un botón para el envío del dato ingresado al servidor:

APRENDE A CREAR UNA PÁGINA WEB CON HTML

Temario Programación Web para Web

Desarrollo de Aplicaciones Web con PHP. Javier Enciso

Tomar información por pantalla con JavaScript

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:

Scripting en el cliente: Javascript. Tecnologías Web

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

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

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

MÓDULO FORMATIVO MF0951_2 UNIDAD FORMATIVA UF1305

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

Transcripción:

Scripting en el cliente: Javascript Tecnologías Web

La clase String Se pueden manejar cadenas mediante objetos de la clase String En JavaScript las cadenas se pueden representar entre comillas simples (') o dobles (") indistintamente Cuidado! es necesario que se cierren y abran con el mismo carácter De esta manera se puede incluir una cadena dentro de otra, por ejemplo, al declarar un manejador de evento Las cadenas se manejan de manera similar a las de Java Se concatenan con + Se puede acceder a la longitud mediante la propiedad length JavaScript 1

Métodos de la clase String charat(posición); Devuelve el carácter de la cadena que se encuentra en posición. slice(inicio, fin) / substring(inicio, fin) Devuelve la subcadena que comienza en la posición inicio y termina en fin-1 Diferencia: en slice(...) los índices pueden ser negativos, en ese caso se cuenta desde el final de la cadena substr(inicio, longitud) Devuelve la subcadena que comienza en inicio y tiene longitud caracteres indexof(subcadena, [inicio]) Busca la primera aparición de subcadena desde en la cadena desde la posición inicio; si no se especifica inicio, será desde el principio de la cadena. lastindexof(subcadena, [inicio]) Igual que el anterior, pero busca la última aparición touppercase() / tolowercase() transforman la cadena a mayúsculas y a minúsculas, respectivamente JavaScript 2

Objeto navigator No es un objeto integrado en el lenguaje como Date, Math y String Tampoco forma parte de la jerarquía del objeto Window. Pertenece al DOM 0 Nos proporciona información relacionada con el navegador. Nos permiten adaptar nuestro JavaScript al navegador y a la versión particular del mismo. Browser sniffers JavaScript 3

El objeto window Cómo usar el objeto window? Como cualquier objeto Como objeto implícito Mediante una variable Como una ventana particular Tipos de referencias al objeto window // Refencias como cualquier objeto normal window.nombre_propiedad; window.nombre_metodo(); // Referencias como objeto implicito nombre_propiedad; nombre_metodo(); // Referencia mediante variable var ventana = window; ventana.nombre_propiedad; ventana.nombre_metodo(); // Referencia a la ventana actual (útil para el caso de marcos y pop-ups window.self.nombre_propiedad; window.self.nombre_metodo(); self.nombre_propiedad; self.nombre_metodo(); JavaScript 4

Usando el objeto window Visualizar mensajes en la barra de estado Personalizando vínculos: Mensaje por defecto y personalizados <html> <head><title>personalizando vínculos</title></head> <script language="javascript" type="text/javascript"><!-- // Cambia el mensaje que aparece en la barra de estado function cambiamensaje(mensaje){ window.status = mensaje; return true; } // Establece el mensaje por defecto del navegador window.defaultstatus="este es el mensaje por defecto"; --></script> </head> <body> <p>mueve el puntero del ratón sobre los vínculos</p> <a href="v1" onmouseover="return cambiamensaje('mensaje1');" Indica que no hay que seguir procesando el evento onmouseout="return cambiamensaje('');">vinculo 1</a> <a href="v2" onmouseover="return cambiamensaje('mensaje2');" onmouseout="return cambiamensaje('');">vinculo 2</a> </body> </html> Habilita el mensaje por defecto JavaScript 5

Usando el objeto window Ejecución de funciones en otro momento Además de los métodos habituales de ejecución de funciones, podemos diferir la ejecución de una función durante un tiempo o podemos hacer que una función se ejecute cada cierto intervalo de tiempo. Diferir la ejecución de una función window.settimeout(expresion, milisegs, arg1, arg2,...); expresion Nombre de la función a ejecutar. milisegs Número de milisegundos que se debe esperar. arg1, 1rg2 Argumentos opcionales que se le pasan a la función. Devuelve un valor para identificar la operación por si se desea cancelar. window.cleartimeout(ident); ident Variable que alamacena el valor devuleto por el método settimeout() JavaScript 6

Usando el objeto window Ejecutando una función cada cierto tiempo window.setinterval(exp, milisegs, arg1, arg2,...); exp Nombre de la función que se desea ejecutar milisegs Número de milisegundos del intervalo arg1, arg2 argumentos opcionales para la función. Devuelve un valor que identifica la operación setinterval() window.clearinterval(ident) ident Identificador devuelto por la operación setinterval() Podemos utilizar estas funciones para crear cuentas atrás, animaciones, etc. JavaScript 7

Usando el objeto window Desplazar un mensaje por la barra de estado <script language="javascript" type="text/javascript"><!-- var msg = "Creación de Sitios Web (CSW)"; // Mensaje a mostrar var msg_delay = 500; // Demora de desplazamiento var max_desp = 2; // Número máximo de desplazamientos var pos_actual = -1; // Posición a partir de la cual se mostrará la cadena var total_desp = 0; // Almacena cuantas veces se ha mostrado el mensaje var id_intervalo = setinterval("scroll_msg()", msg_delay); function scroll_msg(){ // Aumentar la posición actual dentro de la cadena de mensaje pos_actual++; // Seguimos? if ( pos_actual < msg.length ){ status = msg.substring(pos_actual); }else{ pos_actual = 0; total_desp++; // Hemos alcanzado el máximo de desplazamientos? if ( total_desp == max_desp ){ clearinterval(id_intervalo); status=""; return; } } } --></script> JavaScript 8

Usando el objeto window Podemos controlar la navegación de las páginas desde un guión JavaScript usando el objeto location window.location=url URL Dirección de la página a cargar location.nombrepropiedad=valorpropiedad location[nombrepropiedad]=valorpropiedad Propiedades: protocol, hostname, port, host, pathname, hash, search, href href http://www.centrodeestudios.com:80/seccion/index.php#top?param1='val1' protocol hostname port pathname hash search JavaScript 9

Usando el objeto window Métodos del objeto location reload(desdecache); desdecache (Opcionalmente) Si es false (valor por defecto) la página se recargará desde la cache del navegador o true y obligamos a que se recargue desde el servidor. JavaScript 10

Validación en cliente o en servidor? Ventajas de la validación en el lado del cliente: Eficiencia No es necesario realizar una petición HTTP al servidor Comodidad para el cliente Desventaja: No garantiza la seguridad El navegador del cliente podría no entender JavaScript El código HTML y JavaScript es accesible al cliente Un cliente malintencionado podría modificarlo para evitar la validación Solución: Realizar la validación en ambos lados Comodidad para el cliente Se evitan peticiones innecesarias menos carga para el servidor Seguridad garantizada Más trabajo para el programador JavaScript 11

Trabajando con formularios Acceso a los formularios de una página window.document.forms[indice] window.document.forms["nombre"] window.document.forms.nombre window.document.nombre Propiedades de un objeto form action Devuelve o asigna la URL a la que será enviado el formulario elements Devuelve un array con todos los campos del formulario encoding Devuelve o asigna el tipo MIME del formulario length Devuelve el número de campos definidos en el formulario method Devuelve o angina le método por el que será enviados los datos al servidor name Devuelve o asigna el nombre del formulario target Devuelve o angina el nombre del marco en el que se deberá mostrar la respuesta del servidor JavaScript 12

Trabajando con formularios (cont.) Acceso a los elementos de un formulario formulario.elements[indice] formulario.elements["nombre"] formulario.nombre Propiedades habituales de los campos form Devuelve una referencia al objeto Form que contiene el campo name Devuelve el nombre del campo value Devuelve o asigna el valor del campo type Devuelve el tipo del campo (<input type="tipo"...) Submit <input type="submit" Reset <input type="reset" Button <input type="button" Text <input type="text" Password <input type="password" FileUpload <input type="file" Hidden <input type="hidden" Checkbox <input type="checkbox" Radio <input type="radio" JavaScript 13

Trabajando con formularios (cont.) Podemos tener un manejador de eventos para varios formularios, para distinguir cada formulario podemos usar el siguiente código Paso de formularios a una función <form action="servidor/pagina.php" method="post" name="prueba" onsubmit="manejador(this)"> <input type="text" name="campo" onchange="manejador(this.form)"> Evento onsubmit de un objeto Form <form onsubmit="return submit_hldr()"...> Nos permite controlar si se enviará realmente o no un formulario Si se devuelve true, se realiza el envío y si es false se rechaza. Evento onchange de un objeto Input Nos permite controlar el valor del campo una vez ha sido elegido por el usuario. JavaScript 14

Ejemplo de validación de formulario Página de validación <html> <head><title>ejemplo de validación</title> <script type="text/javascript" language="javascript" src="form.js"></script> </head> <body> <form action="..." onsubmit="return validar(this)"> Nombre: <input type="text" name="nombre"/><br/> Edad: <input type="text" name="edad"/><br/> <input type="submit" value="enviar"/> </form> </body> </html> form.js function validar(formulario) { if (formulario.nombre.value=="") { window.alert("debe introducir su nombre"); return false; } edad=parseint(formulario.edad.value); if (isnan(edad) edad<0 edad>100) { window.alert( La edad debe ser un número entre 0 y 100"); return false; } return true; } JavaScript 15

Referencias http://www.howtocreate.co.uk/ Contiene muchísima información sobre DHTML y JavaScript Browser sniffers http://jsbrwsniff.sourceforge.net/ http://www.mozilla.org/docs/webdeveloper/sniffer/browser_type_oo.html http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html http://www.dynamicdrive.com/dynamicindex9/browsersniffer.htm JavaScript 16

Críticas, dudas y sugerencias Federico Peinado www.federicopeinado.es JavaScript 17