Herramientas para desarrolladores : Cursos, manuales y guías de referencia : Cursos : Curso de JavaScript :

Capítulo 5: Eventos en JavaScript

  1. Eventos en JavaScript
  2. Métodos de evento disponibles en JavaScript
  3. Eventos onLoad y onUnload
  4. Ejemplo de aplicación en formularios

1. 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>

 

Tutorial de JavaScript