lunes, 21 de diciembre de 2009

Eventos en JavaScript

En JavaScript, la interacción con el usuario se consigue mediante la captura de los eventos que éste produce. Un evento es una acción del usuario ante la cual puede realizarse algún proceso (por ejemplo, el cambio del valor de un formulario, o la pulsación de un enlace).
Los eventos se capturan mediante los manejadores de eventos. El proceso a realizar se programa mediante funciones JavaScript llamadas por los manejadores de eventos.
La siguiente tabla muestra los manejadores de eventos que pueden utilizarse en JavaScript, la versión a partir de la cual están soportados y su significado.



Manejador
Versión
Se produce cuando...
onAbort
1.1
El usuario interrumpe la carga de una
imagen
onBlur
1.0
Un elemento de formulario, una ventana o
un marco pierden el foco
onChange
1.0 (1.1 para FileUpload)
El valor de un campo de formulario
cambia
onClick
1.0
Se hace click en un objeto o
formulario
onDblClick
1.2 (no en Mac)
Se hace click doble en un objeto
o formulario
onDragDrop
1.2
El usuario arrastra y suelta un objeto en
la ventana
onError
1.1
La carga de un documento o imagen produce
un error
onFocus
1.1 (1.2 para Layer)
Una ventana, marco o elemento de
formulario recibe el foco
onKeyDown
1.2
El usuario pulsa una tecla
onKeyPress
1.2
El usuario mantiene pulsada una
tecla
onKeyUp
1.2
El usuario libera una tecla
onLoad
1.0 (1.1 para image)
El navegador termina la carga de una
ventana
onMouseDown
1.2
El usuario pulsa un botón del ratón
onMouseMove
1.2
El usuario mueve el puntero
onMouseOut
1.1
El puntero abando una área o enlace
onMouseOver
1.0 (1.1 para area)
El puntero entra en una área o
imagen
onMouseUp
1.2
El usuario libera un botón del
ratón
onMove
1.2
Se mueve una ventana o un marco
onReset
1.1
El usuario limpia un formulario
onResize
1.2
Se cambia el tamaño de una ventana o
marco
onSelect
1.0
Se selecciona el texto del campo texto o
área de texto de un formulario
onSubmit
1.0
El usuario envía un formulario
onUnload
1.0
El usuario abandona una
página



Ejemplo de evento:
<INPUT TYPE="text" onChange="CompruebaCampo(this)">
En este ejemplo, CompruebaCampo() es una función JavaScript definida en alguna parte del documento HTML (habitualmente en la cabecera del mismo). El identificador this es una palabra propia del lenguaje, y se refiere al objeto desde el cual se efectua la llamada a la función (en este caso, el campo del formulario).
La siguiente tabla muestra los eventos que pueden utilizarse con los objetos del modelo de objetos JavaScript del Navigator.



Manejador de evento
Objetos para los que está
definido
onAbort
Image
onBlur
Button, Checkbox, FileUpload, Layer,
Password, Radio, Reset, Select, Submit, Text, Textarea,
window

onChange
FileUpload, Select, Text,
Textarea

onClick
Button, document, Checkbox, Link,
Radio, Reset, Submit

onDblClick
document, Link
onDragDrop
window
onError
Image, window
onFocus
Button, Checkbox, FileUpload, Layer,
Password, Radio, Reset, Select, Submit, Text, Textarea,
window

onKeyDown
document, Image, Link,
Textarea

onKeyPress
document, Image, Link,
Textarea

onKeyUp
document, Image, Link,
Textarea

onLoad
Image, Layer, window
onMouseDown
Button, document, Link
onMouseMove
Ninguno (debe asociarse a uno)
onMouseOut
Layer, Link
onMouseOver
Layer, Link
onMouseUp
Button, document, Link
onMove
window
onReset
Form
onResize
window
onSelect
Text, Textarea
onSubmit
Form
onUnload
window



2. Métodos de evento disponibles en JavaScript

Los siguientes métodos de evento pueden utilizarse en JavaScript:



Métodos de evento
Función que realizan
blur()
Elimina el foco del objeto desde el que
se llame
click()
Simula la realización de un
click sobre el objeto desde el que se llame
focus()
Lleva el foco al objeto desde el que se
llame
select()
Selecciona el área de texto del campo
desde el que se llame
submit()
Realiza el envío del formulario desde el
que se llame



Ejemplo:
<HTML>
<HEAD><TITLE>Eventos</TITLE>
<SCRIPT>
<!--
function
Reacciona(campo) {
    alert("¡Introduzca un valor!")

    campo.focus()
}
//-->

</SCRIPT></HEAD>
<BODY> <FORM
METHOD=POST>
<INPUT TYPE=text NAME=campo
onFocus="Reacciona(this)">
</FORM> </BODY>
</HTML>

3. Eventos onLoad y onUnload

Se usan como atributos del tag <BODY> de HTML.
Ejemplo:
<BODY onLoad="Hola()" onUnload="Adios()">
La función Hola() se ejecutará antes de que se cargue la página y la función Adios() al abandonarla.
Ejemplo:
<HTML>
<HEAD>
<TITLE>Ejemplo onLoad
y onUnload</TITLE>
</HEAD>
<BODY
onLoad="alert('¡Bienvenido a mi página!')" onUnload="alert('¡Vuelva
pronto!')">
...
</BODY>
</HTML>
En este otro ejemplo se utilizan funciones:
<HTML>
<HEAD>
<TITLE>Ejemplo con
funciones</TITLE>
<SCRIPT
LANGUAGE="JavaScript">
<!--
var name = ""
function Hola()
{
    nombre = prompt('Introduzca su
nombre:','')
    alert('¡Hola ' + nombre +
'!')
}

function Adios() {
    alert('¡Adios
' + nombre +
'!')
}
//-->
</SCRIPT>
</HEAD>
<BODY
onLoad="Hola()"
onUnload="Adios()">
...
</BODY>
</HTML>

4. Ejemplo de aplicación en formularios

Vamos a ver un ejemplo para un campo de texto:
<INPUT TYPE=text NAME="test" onBlur="alert('¡Gracias!')"
onChange="Comprueba(this)">
En este ejemplo, simulamos una calculadora interactiva:
<HTML>
<HEAD><TITLE>Calculadora
interactiva</TITLE>
<SCRIPT
LANGUAGE="JavaScript">
<!--
function Calcula(form)
{
    form.resultados.value =
eval(form.entrada.value)
}

function CogeExpresion(form)
{
    form.entrada.blur()
   
form.entrada.value = prompt("Introduce una expresión matemática válida
en JavaScript","")
    Calcula(form)
}
//-->
</SCRIPT></HEAD> <BODY> <FORM
METHOD=POST>
Calculadora interactiva:
<INPUT TYPE=text
NAME="entrada" VALUE=""
onFocus="CogeExpresion(this.form)">
<BR>El resultado
es:<INPUT TYPE=text NAME="resultados" VALUE=""
onFocus="this.blur()">
</FORM> </BODY> </HTML>

No hay comentarios:

Publicar un comentario