Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Introducción a JavaScript:
Las páginas HTML son estáticas por naturaleza. El JavaScript se introdujo para superar la
desventaja de tener páginas web estáticas. Éste es un lenguaje de programación en el lado cliente. Los
programas JavaScript, incrustados en el código HTML, pueden ejecutarse en el navegador.
Aunque JavaScript puede usarse también en algunos servidores como un lenguaje script en el
lado servidor, es más popular como un lenguaje script en el lado cliente.
JavaScript adopta una tecnología basada en objetos, lo que significa que proporciona un conjunto de
objetos del navegador predefinidos. JavaScript permite a los usuarios definir objetos para su uso en
el script.
JavaScript está basado en un modelo manejado por eventos. En este tipo de modelos, se necesita
una acción apropiada en respuesta a los eventos del usuario, tales como: navegar a través de
diferentes páginas o hacer clic en los enlaces. JavaScript es capaz de responder a los eventos del
usuario.
JavaScript se puede usar para hacer interactivas las páginas estáticas HTML. Se puede por ejemplo
validar los campos del formulario para ver si el usuario ingresa correctamente los valores requeridos.
JavaScript es independiente del navegador, a diferencia de algunos lenguajes de script del lado
cliente. En consecuencia, JavaScript puede ejecutarse en cualquier navegador que tenga el motor
script de JavaScript.
JavaScript es muy fácil de aprender. La sintaxis de JavaScript es similar a Java y sus construcciones
son similares a C o C++. Por lo tanto, cualquiera que esté familiarizado con estos lenguajes puede
aprender fácilmente JavaScript.
-------- o --------
1
2. Etiquetas básicas en la programación JavaScript:
<!DOCTYPE HTML PUBLIC -//w3c//DTD HTML 4.0//ENU>
<HTML>
<HEAD>
<TITLE>Ejemplo de JavaScript</TITLE>
<SCRIPT LANGUAGE="javascript">
// Aqui se escriben las funciones script
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
<HEAD>
<TITLE>Ejemplo de JavaScript</TITLE>
<SCRIPT LANGUAGE="javascript">
<!--
// Aqui se escriben las funciones script
// -->
</SCRIPT>
</HEAD>
Nota: Observe que se han agregado dos nuevas líneas de código (<!-- y // -->) que son comentarios
de HTML que aparecen dentro de las etiquetas script. Si el navegador tiene la capacidad de entender
código Javascript, entonces los comentarios HTML se ignoran.
Las funciones Script a ser usadas en varios documentos deben estar ubicadas en un archivo
separado. Luego este archivo puede ser referenciado desde el documento. Ejemplo:
<HEAD>
<SCRIPT SCR="Funciones.js" LANGUAGE="javascript">
<!--
// -->
</SCRIPT>
</HEAD>
-------- o --------
2
3. Variables y Tipos de Datos:
Las variables JavaScript se declaran de la siguiente manera:
<SCRIPT LANGUAGE="javascript">
<!--
var nombre;
var apellido, sueldo;
var edad = 18
asignatura = "Informatica";
// -->
</SCRIPT>
<SCRIPT LANGUAGE="javascript">
<!--
var nota;
codigoProducto = "I-230";
codigoProducto = 450;
// -->
</SCRIPT>
<SCRIPT LANGUAGE="javascript">
var arreglo = new Array();
var arr = new Array("Juan", "Tamara", 5, true);
arreglo[0] = 30;
document.write(arreglo[0]+"<BR>");
document.write(arr[1]+"<BR>");
document.write(arr);
</SCRIPT>
Ejemplo:
<SCRIPT LANGUAGE="javascript">
var num1=5, num2=2;
divi = num1/num2;
document.write("Primer numero: " + num1 + "<BR>");
document.write("Segundo numero: " + num2 + "<BR>");
document.write("La división es: " + divi + "<BR>");
cadena = "Hasta " + "luego";
document.write(cadena);
</SCRIPT>
-------- o --------
<SCRIPT LANGUAGE="javascript">
alert("Hola mundo...");
</SCRIPT>
Nota: En el ejemplo anterior se abrirá una ventana de diálogo con el texto: Hola mundo...
4
4.2 Método prompt():
El método prompt() permite al usuario ingresar texto. Se abre una ventana de diálogo con un
mensaje, una casilla de texto y un botón Aceptar. Este método recibe uno o dos parámetros. El primer
parámetro es un texto para indicarle al usuario lo que debe introducir en la casilla de texto; el segundo
parámetro es opcional y corresponde al valor por defecto en la casilla de texto. El método prompt()
puede asignarse a una variable. Ejemplo:
<SCRIPT LANGUAGE="javascript">
usuario = prompt("Introduzca su nombre:", "Escriba su nombre aquí");
document.write("Bienvenido " + usuario);
</SCRIPT>
Nota: En el ejemplo anterior se muestra una ventana de diálogo con una casilla de texto para introducir el
nombre del usuario. Si el usuario introduce el nombre Alberto y pulsa clic en el botón Aceptar se
imprimirá en pantalla: Bienvenido Alberto
Si el usuario presiona el botón Cancelar, el método prompt() asigna o devuelve el valor null.
<SCRIPT LANGUAGE="javascript">
var respuesta;
respuesta = confirm("Desea aceptar la operación?");
</SCRIPT>
Nota: El ejemplo anterior muestra una ventana de diálogo con el texto: Desea aceptar la
operación?; y se presentan dos botones (Aceptar y Cancelar). Si el usuario pulsa el botón
Aceptar la variable respuesta tendrá el valor true; si se pulsa el botón Cancelar la variable
respuesta tendrá el valor false.
-------- o --------
5. Construcciones de Decisión:
Las construcciones de decisión permiten ejecutar un bloque particular de código basado en una
condición. En JavaScript existen dos construcciones de decisión:
if..else
switche..case
Sintaxis:
if (condición) {
sentencias a ejecutar;
}
else {
sentencias a ejecutar;
}
5
Sintaxis:
if (condición) {
sentencias a ejecutar;
}
else if (condición) {
sentencias a ejecutar;
}
<SCRIPT LANGUAGE="javascript">
clave = prompt("Introduzca su clave:");
if (clave == "123") {
document.write("Bienvenido...");
}
else {
alert("Usuario no autorizado...");
}
</SCRIPT>
Sintaxis:
switch (expresión) {
case valor1 :
sentencias a ejecutar;
break;
case valor2 :
case valor3 :
sentencias a ejecutar;
break;
default :
sentencias a ejecutar;
}
Una manera más fácil para manejar if..else anidados es usar la construcción
switch..case. Si más de un case van a ejecutar el mismo conjunto de sentencias, entonces pueden
escribirse una debajo de la otra, tal como se muestra en la sintaxis para case value2 y case value3.
Debe insertar la sentencia break como última instrucción de cada case, sino se ejecutarán las
instrucciones pertenecientes a los case siguientes. Ejemplo:
<SCRIPT LANGUAGE="javascript">
nombre = prompt("Introduzca su nombre:");
switch (nombre) {
case "Administrador" :
alert("Bienvenido Administrador");
break;
case 'Lubia' :
case "Hernan" :
alert("Bienvenido... " + nombre);
break;
default :
alert('Usuario no autorizado');
}
</SCRIPT>
6
Nota: Observe que las cadenas (String) en JavaScript se pueden encerrar entre comillas simples o
dobles. En el ejemplo anterior se debe tener cuidado en las mayúsculas y minúsculas al introducir los
valores.
-------- o --------
6. Construcciones de Ciclo:
Las construcciones de bucle o ciclo permiten al programador ejecutar un bloque de código
particular un número dado de veces, basado en una condición. Existen tres construcciones de ciclo:
for
while
do..while
El siguiente código permite ilustrar un ciclo con la sentencia for que se ejecutará tres veces:
<SCRIPT LANGUAGE="javascript">
var i;
for (i=1; i<=3; i++) {
document.write("Ejecutando el ciclo...<BR>");
}
document.write("Fuera del ciclo.");
</SCRIPT>
El siguiente código permite ilustrar un ciclo con la sentencia while que se ejecutará tres veces:
<SCRIPT LANGUAGE="javascript">
var cont=0;
while (cont < 3) {
document.write("Ejecutando el ciclo...<BR>");
cont++;
}
document.write("Fuera del ciclo.");
</SCRIPT>
-------- o --------
7. Funciones:
Una función es un grupo de sentencias de código para lograr una determinada funcionalidad. Las
funciones en JavaScript pueden recibir uno o más parámetros de entrada y devolver los resultados. El
uso de funciones en JavaScript es similar al de C o C++. Sin embargo, la sintaxis es diferente de C o
C++. Las funciones permiten la reutilización de código.
Función Uso
eval(string) Esta función evalúa el valor del parámetro (string) de entrada y devuelve un
valor numérico como salida. Es decir, retorna el valor numérico contenido en
una cadena (parámetro). El parámetro de entrada puede ser una cadena
almacenando un valor numérico o una expresión.
isNaN(value) Esta función evalúa el valor del parámetro de entrada para determinar si no es
un número y devuelve un valor lógico (true o false). La función isNaN
significa No es un Número. Si el parámetro es un número, la función retorna
false, pero si no es un número entonces retorna true.
parseInt(string) Esta función analiza gramaticalmente el valor del parámetro de entrada y
devuelve un valor entero como salida. Si el parámetro contiene números y
caracteres no numéricos (ejemplo: "24Kma67") se evaluará la parte numérica
(24). Si la cadena a evaluar comienza con un valor no numérico (diferente de
0..9,+,-) la función devuelve NaN. Esta función también se usa para
convertir un valor numérico con decimales (ejemplo: 55.67) a su valor
numérico entero (55).
parseFloat(string) Esta función analiza gramaticalmente el valor del parámetro de entrada y
devuelve un valor de punto flotante (float). Si el parámetro contiene
números y caracteres no numéricos (ejemplo: "24.5Kma67") se evaluará la
parte numérica (24.5). Si la cadena a evaluar comienza con un valor no
numérico (diferente de 0..9,+,-) la función devuelve NaN. Esta función
también se usa para convertir un valor numérico entero (ejemplo: 44) a su
valor numérico float (44.0).
En el siguiente ejemplo la función eval toma como parámetro a cadena que contiene "28.5".
La función retorna 28.5 y lo guarda en la variable numero:
<SCRIPT LANGUAGE="javascript">
var cadena, numero;
cadena="28.5";
numero = eval (cadena);
document.write(numero);
document.write("<BR>");
document.write(eval("25+25"));
</SCRIPT>
Nota: Si en el ejemplo anterior, la variable cadena contiene un valor que no puede convertirse en
numérico, por ejemplo "abc.5" o "Caracas" entonces el script se detiene y no se ejecutan las
demás instrucciones del script.
8
<SCRIPT LANGUAGE="javascript">
var bandera;
bandera = isNaN("12.5");
document.write(bandera);
</SCRIPT>
Nota: El ejemplo anterior muestra el uso de la función isNaN, donde se evalúa la cadena "12.5" y se
retorna el valor false a la variable bandera.
<SCRIPT LANGUAGE="javascript">
var entero;
entero = parseInt("47.9");
document.write(entero);
</SCRIPT>
Nota: El ejemplo anterior muestra el uso de la función parseInt, donde se evalúa la cadena "47.9" y
se retorna la parte entera (47) en la variable entero. En el caso que el parámetro de entrada fuese
"Lara" se retorna el valor NaN.
<SCRIPT LANGUAGE="javascript">
var numeroReal;
numeroReal = parseFloat("95.8Kg");
document.write(numeroReal);
</SCRIPT>
Nota: El ejemplo anterior muestra el uso de la función parseFloat, donde se evalúa la cadena
"95.8Kg" y se retorna la parte numérica con decimales (95.8) en la variable numeroReal. En el caso
que el parámetro de entrada fuese "Valencia" se retorna el valor NaN.
El siguiente ejemplo muestra la forma en que podemos sumar dos valores numéricos
almacenados como cadenas:
<SCRIPT LANGUAGE="javascript">
var num1 = "45";
var num2 = "10";
suma = parseInt(num1) + parseInt(num2);
document.write(suma);
</SCRIPT>
Sintaxis:
function nombreFuncion (param1, param2,...) {
sentencias;
return valor;
}
Una función JavaScript usualmente es definida dentro de las etiquetas <SCRIPT> presentes en la
etiqueta <HEAD>. La función puede invocarse desde cualquier parte del documento.
A continuación se presentan tres simples ejemplos de funciones JavaScript:
9
<HEAD>
<TITLE>Ejemplo de funciones JavaScript</TITLE>
<SCRIPT LANGUAGE="javascript">
var num1, num2;
function sumar (num1, num2) {
var s;
s = parseInt(num1) + parseInt(num2);
return s;
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="javascript">
var n1, n2, suma;
n1=prompt("Introduzca un número:");
n2=prompt("Introduzca otro número:");
suma = sumar(n1, n2);
document.write(suma);
</SCRIPT>
</BODY>
Nota: Observe que en el ejemplo anterior se ha definido la función sumar() dentro de las etiquetas
<HEAD>. El siguiente ejemplo realiza el cálculo del 30% de un número a través de una función:
<HEAD>
<TITLE>Ejemplo de función JavaScript</TITLE>
<SCRIPT LANGUAGE="javascript">
var n;
function porcentaje30 (n) {
return parseInt(n) * 30 / 100;
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="javascript">
var num;
num=prompt("Introduzca un número:");
document.write( porcentaje30(num) );
</SCRIPT>
</BODY>
<HEAD>
<TITLE>Ejemplo de otra función JavaScript</TITLE>
<SCRIPT LANGUAGE="javascript">
var texto;
function mostrar (texto) {
document.write("<FONT COLOR='RED'><H2>" + texto + "</H2></FONT>");
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="javascript">
var nombre;
nombre=prompt("Introduzca su nombre:");
mostrar(nombre);
</SCRIPT>
</BODY>
-------- o --------
10
8. Modelo de Objetos de JavaScript:
JavaScript es un lenguaje basado en objetos. Existen ciertos objetos predefinidos que vienen
como parte del lenguaje, y ayudan a lograr algunas funcionalidades. Estos objetos son llamados objetos
JavaScript y se clasifican generalmente en dos categorías:
Estos objetos son similares a los objetos de Java. Cada uno de estos objetos tiene propiedades
y métodos. A continuación se discute cada uno de ellos:
<SCRIPT LANGUAGE="javascript">
var cadena = "Esta es una cadena";
cadena2 = new String("otra cadena");
</SCRIPT>
Nota: En el ejemplo anterior se muestra la creación de cadena y cadena2 como objetos String.
El objeto String tiene una propiedad llamada length y proporciona varios métodos utilitarios
que son útiles para manipular cadenas.
<SCRIPT LANGUAGE="javascript">
var cadena = "Esta Es Una Cadena";
tamano = cadena.length; //devuelve la cantidad de caracteres: 18
minusculas = cadena.toLowerCase(); //devuelve: "esta es una cadena"
mayusculas = cadena.toUpperCase(); //devuelve: "ESTA ES UNA CADENA"
caracter2 = cadena.charAt(2); //devuelve el caracter de la posi 2:"t"
subcadena = cadena.substring(5, 11); //devuelve: "Es Una"
nueva = cadena.replace("Una", "Otra"); //devuelve: "Esta Es Otra Cadena"
primera = cadena.indexOf("na"); //devuelve la posición del 1er "na": 9
ultima = cadena.lastIndexOf("na"); //devuelve la posi del último "na": 16
donde = cadena.indexOf("x"); //devuelve la posición de "x": -1
arreglo = cadena.split(" "); //arreglo("Esta","Es","Una","Cadena")
var numero = 25;
texto = numero.toString(); //devuelve: "25"
</SCRIPT>
<SCRIPT LANGUAGE="javascript">
numero = new Number(95);
</SCRIPT>
El valor del objeto Number que se crea depende de lo que reciba el constructor new, de acuerdo
con estas reglas:
Si el constructor recibe un número, entonces inicializa el objeto con el número que recibe.
Si recibe un número entrecomillado lo convierte a valor numérico, devolviendo también dicho número.
Devuelve cero (0) en caso de que no reciba nada.
Si recibe un valor no numérico devuelve NaN, que significa "Not a Number" (No es un número).
En caso de recibir false se inicializa a cero (0) y si recibe true se inicializa a 1.
<SCRIPT LANGUAGE="javascript">
var n1 = new Number(125);
document.write(n1 + "<br>"); //muestra: 125
var n2 = new Number("748");
document.write(n2 + "<br>"); //muestra: 748
var n3 = new Number();
document.write(n3 + "<br>"); //muestra: 0
var n4 = new Number("hola");
document.write(n4 + "<br>"); //muestra: NaN
var n5 = new Number("123asdfQWERTY")
document.write(n5 + "<br>"); //muestra: NaN
var n6 = new Number(false);
document.write(n6 + "<br>"); //muestra: 0
var n7 = new Number(true);
document.write(n7 + "<br>"); //muestra: 1
var n8 = new Number(1/0);
document.write(n8 + "<br>"); //muestra: Infinity
var n9 = new Number(-1/0);
document.write(n9 + "<br>"); //muestra: –Infinity
</SCRIPT>
12
El objeto Number no tiene métodos. Tiene propiedades para almacenar constantes, tales como
infinito (positivo y negativo), los números más grande y más pequeño que pueden ser asignados a las
variables y una constante para representar “Not a Number” (NaN).
Estas propiedades son de clase, así que accederemos a ellas a partir del nombre de la clase
(Number), tal como podemos ver en el siguiente ejemplo en el que se muestra cada uno de sus valores:
<SCRIPT LANGUAGE="javascript">
document.write(Number.NaN +"<BR>"); //muestra: NaN
document.write(Number.MAX_VALUE +"<BR>"); //muestra:1.7976931348623157e+308
document.write(Number.MIN_VALUE +"<BR>"); //muestra: 5e-324
document.write(Number.NEGATIVE_INFINITY +"<BR>"); //muestra: -Infinity
document.write(Number.POSITIVE_INFINITY +"<BR>"); //muestra: Infinity
</SCRIPT>
Para trabajar con la clase Math no debemos utilizar la instrucción new sino que utilizaremos el
nombre de la clase (Math) para acceder a sus propiedades y métodos. Ejemplo:
13
<SCRIPT LANGUAGE="javascript">
document.write(Math.PI +"<BR>"); //muestra: 3.141592653589793
document.write(Math.E +"<BR>"); //muestra: 2.718281828459045
document.write(Math.SQRT2 +"<BR>"); //muestra: 1.4142135623730951
document.write(Math.LN2 +"<BR>"); //muestra: 0.6931471805599453
document.write(Math.LN10 +"<BR>"); //muestra: 2.302585092994046
document.write(Math.LOG2E +"<BR>"); //muestra: 1.4426950408889633
document.write(Math.LOG10E +"<BR>"); //muestra: 0.4342944819032518
<SCRIPT LANGUAGE="javascript">
var arreglo1 = new Array();
var arreglo2 = new Array("Juan", "Tamara", 5, true);
</SCRIPT>
Los arreglos en JavaScript son similares a los de Java. El índice comienza en cero. El objeto
Array en JavaScript puede almacenar elementos de diferentes tipos, dado que las variables en
JavaScript son de tipado libre.
El objeto Array tiene una propiedad llamada length que devuelve el número de elementos en
el arreglo.
14
<SCRIPT LANGUAGE="javascript">
var arreglo = new Array();
arreglo[0] = 90;
arreglo[1] = "Hola";
cantidad = arreglo.length;
document.write("Primer elemento: "+arreglo[0]+"<BR>");
document.write("Segundo elemento: "+arreglo[1]+"<BR>");
document.write("Cantidad de elementos: "+cantidad+"<BR>");
</SCRIPT>
Veamos este otro ejemplo, donde un arreglo se carga con tres elementos (0, 1 y 2):
<SCRIPT LANGUAGE="javascript">
var arreg = new Array();
var i;
for (i=0; i<3; i++) { //cargar arreglo
arreg[i] = i;
}
document.write("Elementos del arreglo: "+arreg+"<BR>"); //mostrar arreglo
</SCRIPT>
El siguiente ejemplo carga un arreglo con valores introducidos por el usuario usando el método
prompt(), hasta que el usuario introduce una cadena vacía o pulsa el botón Cancelar. Recuerde que
si el usuario presiona el botón Cancelar, el método prompt() asigna o devuelve el valor null. La
instrucción break obliga a salir del ciclo:
<SCRIPT LANGUAGE="javascript">
var arr = new Array();
var elemento;
while (true) {
elemento = prompt("Introduzca un valor:", "");
if (elemento != "" && elemento != null)
arr[arr.length] = elemento;
else
break;
}
document.write("Elementos del arreglo: "+arr+"<BR>"); //mostrar arreglo
document.write("Cantidad de elementos: "+arr.length+"<BR>");
</SCRIPT>
JavaScript soporta únicamente arreglos de una sola dimensión, pero también puede simular
arreglos multidimensionales. El siguiente ejemplo muestra un arreglo bidimensional simulado con los
valores asignados al momento de su creación:
<SCRIPT LANGUAGE="javascript">
var matriz = new Array([1,"Perro"],[2,"Gato"],[3,"Perico"]);
document.write("Los elementos de la matriz son: <BR>");
for (i=0; i<3; i++) {
for (j=0; j<2; j++) {
document.write(matriz[i][j]+"<BR>"); //mostrar elemento
}
}
</SCRIPT>
15
8.1.5. El Objeto Boolean:
Un objeto Boolean se usa para manejar los valores true y false (verdadero o falso). El objeto
Boolean es un envoltorio sobre los valores primitivos, true y false. Un objeto Boolean se crea
pasando un parámetro al constructor new, así:
<SCRIPT LANGUAGE="javascript">
variable = new Boolean(valor);
</SCRIPT>
El valor del objeto Boolean que se crea depende de lo que reciba el constructor new, de acuerdo
con estas reglas:
Si el constructor recibe un cero (0), entonces inicializa el objeto con false. Cualquier otro número
se toma como true.
Si recibe una cadena vacía se toma como false. Cualquier otra cadena es tomada como true.
Si recibe un valor primitivo Boolean false se toma como false. Y un valor primitivo Boolean true
se toma como true.
Cualquier objeto válido se toma como true . El valor null se toma como false.
<SCRIPT LANGUAGE="javascript">
obj1 = new Boolean(0);
document.write(obj1+"<BR>"); //muestra: false
obj2 = new Boolean(245);
document.write(obj2+"<BR>"); //muestra: true
El objeto Boolean tiene el método valueOf(), que devuelve el valor primitivo. El método
valueOf()es común en todos los objetos (como String y Date).
<SCRIPT LANGUAGE="javascript">
objeto = new Boolean(123);
document.write(objeto.valueOf()+"<BR>"); //muestra: true
var numero = 45;
document.write(numero.valueOf()+"<BR>"); //muestra: 45
var ciudad = "San Cristobal";
document.write(ciudad.valueOf()+"<BR>"); //muestra: San Cristobal
</SCRIPT>
16
8.1.6. El Objeto Date:
Un objeto Date se usa para manejar fechas y horas en Javascript. Para trabajar con fechas
necesitamos instanciar con el constructor new un objeto de la clase Date. Un objeto de la clase Date se
puede crear con la fecha y hora actuales, por ejemplo:
<SCRIPT LANGUAGE="javascript">
fechaActual = new Date();
document.write(fechaActual); //muestra: Wed Feb 17 17:21:49 UTC-0400 2010
</SCRIPT>
Por otro lado podemos crearlo con un día y hora distintos a los actuales. Esto depende de los
parámetros que pasemos al construir el objeto. Ejemplo:
<SCRIPT LANGUAGE="javascript">
año = 2010;
mes = 2;
dia = 15;
hora = 14;
minutos = 30;
segundos = 0;
fecha1 = new Date(año,mes,dia,hora,minutos,segundos); //crear fecha1
fecha2 = new Date(año,mes,dia); //crear fecha2
</SCRIPT>
Nota: Los valores que debe recibir el constructor son siempre numéricos. Un detalle, el mes comienza
en cero (0), es decir, enero es el mes 0. Si no indicamos la hora, el objeto fecha se crea con la hora
00:00:00.
Los objetos de la clase Date no tienen propiedades pero si un montón de métodos, veamos:
17
Nota: Como habrás notado, hay métodos obsoletos por cuestiones relativas al año 2000: getYear() y
setYear(). Estos métodos se comportan bien en Internet Explorer y no nos dará ningún problema el
utilizarlos. Sin embrago, no funcionarán correctamente en Netscape, por lo que es interesante que
utilicemos en su lugar los métodos getFullYear() y setFullYear(), que funcionan bien en
Netscape e Internet Explorer.
<SCRIPT LANGUAGE="javascript">
fecha = new Date(2011,7,29,12,35,0); //crear fecha (29-Ago-2011, 12:30:00)
document.write(fecha+"<BR>"); //muestra: Mon Aug 29 12:35:00 UTC-0400 2011
<SCRIPT LANGUAGE="javascript">
var f = new Date();
document.write(f.getDate() +"/"+ (f.getMonth()+1) +"/"+ f.getFullYear());
document.write(f.getHours() +":"+ f.getMinutes() +":"+ f.getSeconds());
Navigator Window
El objeto de mayor nivel en la jerarquía DOM es la ventana actual del navegador, abstraída como
Window en JavaScript.
A continuación se discuten los diferentes objetos, sus propiedades y métodos, además de
algunos ejemplos.
<SCRIPT LANGUAGE="javascript">
document.write(navigator.appName + "<BR>");
document.write(navigator.appCodeName + "<BR>");
document.write(navigator.appVersion + "<BR>");
document.write(navigator.userAgent + "<BR>");
document.write(navigator.platform + "<BR>");
document.write(navigator.javaEnabled() + "<BR>");
</SCRIPT>
El siguiente ejemplo muestra el uso de algunas propiedades y métodos del objeto Window:
<SCRIPT LANGUAGE="javascript">
alert("Observe la Barra de Estado...");
alert(window.status = "Programación Web");
alert("Ahora se cambiará el mensaje de la barra de estado");
window.defaultStatus = "Bien";
</SCRIPT>
Nota: El objeto Window es el objeto por defecto en la jerarquía DOM JavaScript. En el ejemplo anterior
se usa la función alert() directamente, que es más cómodo que escribir window.alert().
20
El método open() del objeto Window toma tres parámetros: el URL del documento a ser
cargado, el nombre del manejador de la ventana y las propiedades físicas de la ventana. El tercer
parámetro es constituye una cadena que define las propiedades físicas de la ventana.
A continuación se presentan las propiedades a usar en el método open():
Propiedades Descripción
left Distancia en pixels desde el lado izquierdo de la pantalla a la ventana.
top Distancia en pixels desde el lado superior de la pantalla a la ventana.
width Especifica el ancho de la ventana en pixels.
height Especifica el alto de la ventana en pixels.
scrollbars Indica si aparecerán las barras de desplazamiento o no (yes o no).
location Indica si tendrá barra de ubicación (campo de localización) (yes o no).
directories Indica si aparecerá el botón de directorios o no (yes o no).
status Indica si aparecerá la barra de estado o no (yes o no).
menubar Indica si aparecerá la barra de menú o no (yes o no).
toolbar Indica si aparecerá la barra de herramientas o no (yes o no).
resizable Especifica si el tamaño de la ventana será modificable o no (yes o no).
En el siguiente ejemplo usaremos el método open() para abrir una nueva ventana con la página
prueba.html:
<SCRIPT LANGUAGE="javascript">
var propiedades = "left=200, top=200, height=300, width=500, scrollbar=no,
location=no, resizable=no, menubar=no";
var nuevaVentana = window.open("prueba.html", "temp", propiedades);
//window.close();
</SCRIPT>
Nota: En el ejemplo anterior debe existir una página con el nombre prueba.html.
<HTML>
<TITLE>Métodos del Objeto Window</TITLE>
<SCRIPT LANGUAGE="javascript">
function crearMiTimer() {
setTimeout("miFuncion()", 5000);
}
function miFuncion() {
alert("Este mensaje aparece a los 5 segundos");
clearTimeout();
}
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="javascript">
document.write("<B>Bienvenidos.....</B>");
crearMiTimer();
</SCRIPT>
</BODY>
</HTML>
Nota: Se debe tener la precaución de encerrar entre comillas la función a invocar, es decir el primer
parámetro del método setTimeout().
21
Existen tres objetos que pertenecen al objeto Window en la jerarquía DOM. Estos objetos son:
Location.
History.
Document.
protocolo://maquina_host[:puerto]/camino_al_recurso
Podemos utilizar la propiedad href o el método replace() para navegar de una página a otra.
El URL accedido usando el método replace() no está disponible en la secuencia del historial. El
siguiente ejemplo muestra las dos formas de redireccionar a otra página:
<SCRIPT LANGUAGE="javascript">
window.location.href = "http://www.ibm.com/ve/es/";
window.location.replace("http://www.ibm.com/ve/es/");
</SCRIPT>
<SCRIPT LANGUAGE="javascript">
document.write(window.location.href +"<BR>"); //URL completa
document.write(window.location.host +"<BR>"); //Dirección IP del Host
document.write(window.location.hostname +"<BR>"); //Nombre del Host
document.write(window.location.port +"<BR>"); //Puerto del Host (URL)
document.write(window.location.pathname +"<BR>"); //Nombre de ruta relativa
document.write(window.location.protocol +"<BR>"); //Protocolo
</SCRIPT>
22
8.2.4. El Objeto History:
Este objeto se encarga de almacenar una lista con los sitios por los que se ha estado navegando,
es decir, guarda las referencias de los lugares visitados. Se utiliza, sobre todo, para movernos hacia
delante o hacia atrás en dicha lista.
<SCRIPT LANGUAGE="javascript">
document.open();
document.write(document.title + "<BR>");
document.write(document.fgColor + "<BR>");
document.write(document.bgColor + "<BR>");
document.write(document.linkColor + "<BR>");
document.write(document.vlinkColor + "<BR>");
document.write(document.fileCreatedDate + "<BR>");
document.close();
</SCRIPT>
Nota: Recuerde que el método open() del objeto Document no abre una nueva ventana, sino que
permite la escritura en el documento.
23
El próximo ejemplo permite al usuario introducir un nuevo título a la página:
<SCRIPT LANGUAGE="javascript">
var unTitulo;
unTitulo = prompt ("Introduzca un Título para esta página:", "Mi título");
document.title = unTitulo;
</SCRIPT>
El siguiente ejemplo permite visualizar el título de nuestra página de forma animada, usando la
propiedad title del objeto Document y el método setTimeout() del objeto Window. Pruébalo:
<HTML>
<HEAD>
<title>Ejemplo de JavaScript</title>
<script LANGUAGE="JavaScript">
var i=1;
var miTitulo = document.title;
function cambiarTitulo() {
document.title = miTitulo.substring(0, i);
i++;
if (i > miTitulo.length)
i=0;
setTimeout('cambiarTitulo()', 100);
}
cambiarTitulo();
</script>
</HEAD>
<BODY>
<script LANGUAGE="JavaScript">
document.write("<B>Observe la Barra de Título en el navegador </B> ");
</script>
</BODY>
</HTML>
Como sabemos, un documento HTML puede tener numerosos elementos. Estos elementos
pueden ser:
Anclas o enlaces internos (anchors)
Enlaces externos (links)
Formularios (forms)
Imágenes (images)
Applets (applets)
<SCRIPT LANGUAGE="javascript">
document.write(document.anchors.length + "<BR>");
document.write(document.links.length + "<BR>");
document.write(document.images.length + "<BR>");
document.write(document.forms.length + "<BR>");
document.write(document.applets.length + "<BR>");
</SCRIPT>
24
El siguiente ejemplo ilustra más claramente el uso de estos objetos (arreglos) con su propiedad
length, para saber la cantidad de anclas, enlaces, imágenes y formularios de un documento:
<HTML>
<HEAD>
<TITLE>Ejemplo JavaScript</TITLE>
</HEAD>
<BODY BGCOLOR="YELLOW">
<A HREF="pagina1.html"> Enlace A</A> <BR>
<A HREF="pagina2.html"> Enlace B</A> <BR>
<IMG SRC="imagen1.jpg" NAME="foto1" WIDTH="200">
<IMG SRC="imagen2.jpg" NAME="foto2" WIDTH="200">
<IMG SRC="imagen3.jpg" NAME="foto3" WIDTH="200"> <BR>
<FORM NAME="f1" METHOD="GET">
Nombre: <INPUT TYPE="TEXT" NAME="nombre"> <BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>
<SCRIPT LANGUAGE="javascript">
document.write("Cantidad de anclas: ");
document.write(document.anchors.length + "<BR>");
document.write("Cantidad de enlaces: ");
document.write(document.links.length + "<BR>");
document.write("Cantidad de imágenes: ");
document.write(document.images.length + "<BR>");
document.write("Cantidad de formularios: ");
document.write(document.forms.length + "<BR>");
</SCRIPT>
</BODY>
</HTML>
Estos objetos (arreglos) nos permiten tener acceso a cada uno de estos elementos (anclas,
enlaces, imágenes y formularios) y a sus propiedades.
Por ejemplo, si un documento contiene tres (3) imágenes, el arreglo images estará compuesto
por tres (3) elementos. La primera imagen desplegada en el documento corresponderá al primer
elemento del arreglo images, es decir document.images[0].
Quiere decir, que podemos acceder a cualquiera de estos elementos a través de su posición
(índice) en el arreglo (objeto). Este índice puede ser numérico (desde cero) o el nombre asignado al
elemento en la propiedad name (encerrado entre comillas).
Tomando como ilustración el ejemplo anterior, la primera imagen desplegada tiene la propiedad
NAME="foto1". Entonces, también podemos acceder a la primera imagen usando
document.images["foto1"].
El siguiente ejemplo permite mostrar la forma de acceder a las propiedades de estos elementos:
<SCRIPT LANGUAGE="javascript">
document.write("Nombre de la segunda imagen: ");
document.write(document.images[1].name + "<BR>");
document.write("Nombre del formulario: ");
document.write(document.forms[0].name + "<BR>");
document.write("Método de envío del formulario: ");
document.write(document.forms["f1"].method + "<BR>");
</SCRIPT>
25
Existen cinco objetos que pertenecen al objeto Document en la jerarquía DOM. Estos objetos
son:
Anchor.
Link.
Image.
Form.
Applet.
<BODY BGCOLOR="AQUA">
<br><br><br><br><br><br><br><br><br><br><br>
<A name="arriba" target="_tope">Inicio</A>
<br><br><br><br><br><br><br><br><br><br><br>
<A HREF="#arriba">Subir</A>
<br>
<SCRIPT LANGUAGE="javascript">
document.write("Nombre del acla: ");
document.write(document.anchors[0].name + "<BR>");
document.write("Atributo target del acla: ");
document.write(document.anchors[0].target + "<BR>");
document.write("Cantidad de anclas: ");
document.write(document.anchors.length + "<BR>");
</SCRIPT>
<br><br><br><br><br><br><br><br><br><br><br>
</BODY>
26
Cada enlace existente en un documento corresponde a un objeto que se coloca en el arreglo
Links. Así, se accederá al primer enlace mediante document.links[0], al segundo mediante
document.links[1], y así sucesivamente.
El siguiente ejemplo muestra el uso de las propiedades del objeto Link:
<BODY BGCOLOR="LIME">
<A HREF="http://www.yahoo.com" target="_blank"> Enlace a Yahoo!</A> <BR>
<A HREF="http://www.google.co.ve/"> Enlace a Google!</A> <BR>
<SCRIPT LANGUAGE="javascript">
var i;
for (i=0; i < document.links.length; i++) {
document.write("Atributo target del enlace: ");
document.write(document.links[i].target + "<BR>");
document.write("URL completa del enlace: ");
document.write(document.links[i].href + "<BR>");
document.write("Puerto del enlace: ");
document.write(document.links[i].port + "<BR>");
document.write("Dominio del enlace: ");
document.write(document.links[i].hostname + "<BR>");
}
</SCRIPT>
</BODY>
<BODY BGCOLOR="#FFFF99">
<IMG NAME="logo" SRC="imagen.jpg" WIDTH="200"> <br><br>
<SCRIPT LANGUAGE="javascript">
document.write("Nombre de la imagen: ");
document.write(document.images[0].name + "<BR>");
document.write("URL de la imagen: ");
document.write(document.images['logo'].src + "<BR>");
document.write("Ancho de la imagen en pixels: ");
document.write(document.logo.width + "<BR>");
document.write("Cantidad de imagenes: ");
document.write(document.images.length + "<BR>");
alert("Ahora se cambiará la imágen desde JavaScript");
document.logo.src='imagen8.jpg';
</SCRIPT>
</BODY>
27
Nota: El ejemplo anterior muestra que podemos acceder a una imagen JavaScript de tres maneras:
usando el objeto (arreglo) Images con índice numérico, usando el objeto Images colocando el nombre
de la imagen como índice (entre comillas), o simplemente usando el nombre de la imagen. Tomando la
imagen del ejemplo anterior podemos acceder al atributo src de las siguientes formas:
document.images[0].src
document.images['logo'].src
document.logo.src
Observe también que en el ejemplo anterior se ha modificado una imagen del documento desde
JavaScript.
El objeto Image, además, tiene ciertos eventos tales como onMouseOver y onMouseOut, entre
otros. Los eventos y manejadores de eventos se tratarán más adelante.
El siguiente ejemplo permite intercambiar imágenes cuando el cursor ingresa al espacio ocupado
por la imagen (mouse over) y cuando el cursor abandona la imagen (Mouse out):
<BODY BGCOLOR="Turquoise">
<IMG NAME="foto" SRC="imagen1.jpg" WIDTH="300"
onMouseOver="document.foto.src='imagen2.jpg';"
onMouseOut="document.foto.src='imagen1.jpg';">
<br>
Mueva el puntero del ratón hasta la imagen...
</BODY>
El ejemplo anterior podría escribirse usando una función JavaScript de la siguiente forma:
<HTML>
<HEAD>
<TITLE>Intercambio de imagenes con JavaScript</TITLE>
<SCRIPT LANGUAGE="javascript">
function cambiar_imagen(x) {
document.foto.src=x;
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="Turquoise">
<IMG NAME="foto" SRC="imagen1.jpg" WIDTH="300"
onMouseOver="cambiar_imagen('imagen2.jpg');"
onMouseOut="cambiar_imagen('imagen1.jpg');">
<br>
Mueva el puntero del ratón hasta la imagen...
</BODY>
</HTML>
28
Cada formulario existente en un documento corresponde a un objeto que se coloca en el arreglo
Forms. Así, se accederá al primer formulario mediante document.forms[0], al segundo mediante
document.forms[1], y así sucesivamente.
El siguiente ejemplo muestra el uso de las propiedades del objeto Form:
<BODY BGCOLOR="SpringGreen">
<FORM NAME="f1" METHOD="POST" TARGET="derecha">
Nombre: <INPUT TYPE="TEXT" NAME="nombre"> <BR>
Clave: <INPUT TYPE="PASSWORD" NAME="pass"> <BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
<INPUT TYPE="RESET" VALUE="Limpiar">
</FORM>
<SCRIPT LANGUAGE="javascript">
document.write("Nombre del formulario: ");
document.write(document.forms[0].name + "<BR>");
document.write("Método de envío: ");
document.write(document.forms['f1'].method + "<BR>");
document.write("Atributo target del formulario: ");
document.write(document.f1.target + "<BR>");
document.write("Nombre del segundo elemento del formulario: ");
document.write(document.f1.elements[1].name + "<BR>");
document.write("Cantidad de formularios: ");
document.write(document.forms.length + "<BR>");
</SCRIPT>
</BODY>
Nota: El ejemplo anterior muestra que podemos acceder a un formulario JavaScript de tres maneras:
usando el objeto (arreglo) Forms con índice numérico, usando el objeto Forms colocando el nombre del
formulario como índice (entre comillas), o simplemente usando el nombre del formulario. Tomando como
ilustración el formulario del ejemplo anterior podemos acceder al atributo method de las siguientes
formas:
document.forms[0].method
document.forms['f1'].method
document.f1.method
Se puede decir que es mas fácil acceder a un atributo o elemento del formulario utilizando el
nombre del formulario, por lo cual se aconseja agregar el atributo name al formulario HTML.
El objeto Form, además, tiene ciertos eventos tales como onSubmit y onReset, que se tratarán
más adelante.
Como sabemos, un formulario está compuesto por elementos o campos, tales como: campos de
texto, checkbox y botones. El objeto Form está un paso arriba de los campos de formulario (formfield)
en la jerarquía DOM.
window.document.nombreFormulario.nombreElemento.propiedad
Propiedades Descripción
name Representa el nombre del campo (atributo name del campo).
value Representa el valor actual existente en el campo (atributo value del campo).
defaultValue Representa el valor por defecto del campo (texto inicialmente asignado al atributo
value del campo).
type Representa el atributo type del campo ("text", "password", "textarea").
form Contiene el formulario (objeto) que almacena al campo.
Métodos Descripción
focus() Obtiene el foco del ratón sobre el objeto especificado.
blur() Pierde el foco del ratón sobre el objeto especificado.
select() Selecciona el texto dentro del objeto especificado (y obtiene el foco del ratón).
<BODY BGCOLOR="Wheat">
<FORM NAME="f1">
Login: <INPUT TYPE="TEXT" NAME="log" VALUE="Administrador"> <BR>
Clave: <INPUT TYPE="PASSWORD" NAME="pass"> <BR>
Observaciones: <BR>
<TEXTAREA NAME="obser" COLS="40" ROWS="5"> Escriba aquí </TEXTAREA> <BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>
<SCRIPT LANGUAGE="javascript">
document.write("Name del campo Login: " + document.f1.log.name + "<BR>");
document.write("Value del campo Login: "+ document.f1.log.value +"<BR>");
document.write("Value del textArea: " + document.f1.obser.value +"<BR>");
document.write("type del campo Clave: " + document.f1.pass.type +"<BR>");
alert("Ahora colocamos el foco en el campo Clave: ");
document.f1.pass.focus();
</SCRIPT>
</BODY>
Propiedades Descripción
name Representa el nombre del Radio o Checkbox (atributo name del campo).
value Representa el valor actual existente en el campo (atributo value del campo).
checked Valor booleano que nos dice si el Radio o Checkbox está seleccionado o no. Es
posible cambiar las selecciones usando esta propiedad (asignando el valor true
o false).
defaultChecked Valor booleano de la propiedad checked por defecto.
length Cantidad de elementos Radio de un mismo grupo. No aplica en Checkbox.
type Representa el atributo type del campo ("radio", "checkbox").
form Contiene el formulario (objeto) que almacena al campo.
Métodos Descripción
focus() Obtiene el foco del ratón sobre el objeto especificado.
blur() Pierde el foco del ratón sobre el objeto especificado.
click() Es como si hiciésemos un click sobre un Radio o un Checkbox, es decir, cambia
su estado.
30
Los botones de radio que pertenecen a un mismo grupo deben tener el mismo valor NAME. Por lo
tanto, el objeto Radio es un arreglo. Para referirse un botón de radio en específico se debe usar su
posición entre corchetes.
El siguiente ejemplo muestra el uso de algunas propiedades y métodos del objeto Radio:
<BODY BGCOLOR="YellowGreen">
<FORM NAME="f">
Por favor, seleccione su Sexo: <BR>
<INPUT TYPE="RADIO" NAME="sexo" VALUE="Masculino" CHECKED> Masculino <BR>
<INPUT TYPE="RADIO" NAME="sexo" VALUE="Femenino"> Femenino <BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>
<SCRIPT LANGUAGE="javascript">
document.write("Atributo name del Radio: ");
document.write(document.f.sexo[0].name + "<BR>");
document.write("Atributo value del primer Radio: ");
document.write(document.f.sexo[0].value + "<BR>");
document.write("Valor del atributo Checked del segundo Radio: ");
document.write(document.f.sexo[1].checked + "<BR>");
document.write("Cantidad de elementos Radio: ");
document.write(document.f.sexo.length + "<BR>");
alert("Ahora seleccionamos el segundo radio: ");
document.f.sexo[1].click();
</SCRIPT>
</BODY>
El siguiente ejemplo muestra el uso de algunas propiedades y métodos del objeto Checkbox:
<BODY BGCOLOR="LightBlue">
<FORM NAME="f2">
Deseo participar en: <BR>
<INPUT TYPE="CHECKBOX" NAME="ajz" VALUE="ajedrez" CHECKED> Ajedrez <BR>
<INPUT TYPE="CHECKBOX" NAME="nat" VALUE="natacion"> Natación <BR>
<INPUT TYPE="CHECKBOX" NAME="gim" VALUE="gimnasia"> Gimnasia <BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>
<SCRIPT LANGUAGE="javascript">
document.write("Atributo name del primer Checkbox: ");
document.write(document.f2.ajz.name + "<BR>");
document.write("Atributo value del segundo Checkbox: ");
document.write(document.f2.nat.value + "<BR>");
document.write("Valor del atributo checked del tercer Checkbox: ");
document.write(document.f2.gim.checked + "<BR>");
alert("Ahora seleccionamos gimnasia: ");
document.f2.gim.click();
alert("Ahora desmarcamos ajedrez: ");
document.f2.ajz.checked = false;
</SCRIPT>
</BODY>
31
8.2.10.3. Objeto Select:
El objeto Select se usa para recibir entradas del usuario, como selección de una lista de
elementos.
Las propiedades y métodos del objeto Select son:
Propiedades Descripción
name Representa el nombre del elemento Select (atributo name de la lista).
value Representa el valor actual seleccionado de la lista (atributo value de la opción
seleccionada).
selectedIndex Representa el índice de la opción que se encuentra seleccionada. En caso de no
haber seleccionado ninguna opción, contiene -1.
options Refleja un arreglo (objeto) con cada una de las opciones del objeto Select. A su
vez tiene algunas propiedades.
length Cantidad de opciones de la lista Select. Cantidad de etiquetas <OPTION>.
type Representa el atributo type del campo ("select-one"). Si la etiqueta
<SELECT> tiene el atributo MULTIPLE, type contendrá "select-multiple".
form Contiene el formulario (objeto) que almacena a esta lista.
Métodos Descripción
focus() Obtiene el foco del ratón sobre el objeto especificado.
blur() Pierde el foco del ratón sobre el objeto especificado.
El siguiente ejemplo muestra el uso de algunas propiedades y métodos del objeto Select:
<BODY BGCOLOR="Feldspar">
<FORM NAME="f3">
Valore este sitio web: <BR>
<SELECT NAME="valorar">
<OPTION VALUE="excelente">Excelente</OPTION>
<OPTION VALUE="bien" SELECTED>Bien</OPTION>
<OPTION VALUE="regular">Regular</OPTION>
</SELECT>
<BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>
<SCRIPT LANGUAGE="javascript">
document.write("Atributo name de la lista: ");
document.write(document.f3.valorar.name + "<BR>");
document.write("Valor seleccionado de la lista: ");
document.write(document.f3.valorar.value + "<BR>");
document.write("Indice de la opción seleccionada de la lista: ");
document.write(document.f3.valorar.selectedIndex + "<BR>");
document.write("Cantidad de opciones de la lista: ");
document.write(document.f3.valorar.length + "<BR>");
</SCRIPT>
</BODY>
Nota: Más adelante, en el tema 11. trataremos la propiedad (objeto) Options en detalle.
32
Propiedades Descripción
name Representa el nombre del campo (atributo name del campo).
value Representa el valor actual existente en el campo (atributo value del campo).
type Representa el atributo type del campo ("radio", "checkbox").
form Contiene el formulario (objeto) que almacena al campo.
Métodos Descripción
focus() Obtiene el foco del ratón sobre el botón especificado.
blur() Pierde el foco del ratón sobre el botón especificado.
click() Es como hacer un click sobre un botón de tipo Button, Submit, o Reset. Este
método no aplica para los campos tipo Hidden.
<BODY BGCOLOR="Khaki">
<FORM NAME="f4">
<INPUT TYPE="HIDDEN" NAME="id" VALUE="123">
<INPUT TYPE="BUTTON" NAME="b1" VALUE="Calcular"> <BR>
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Enviar">
<INPUT TYPE="RESET" NAME="reset" VALUE="Limpiar">
</FORM>
<SCRIPT LANGUAGE="javascript">
document.write("Atributo name del campo oculto: ");
document.write(document.f4.id.name + "<BR>");
document.write("Atributo value del campo oculto: ");
document.write(document.f4.id.value + "<BR>");
document.write("Atributo name del botón Calcular: ");
document.write(document.f4.elements[1].name + "<BR>");
document.write("Atributo name del botón Limpiar: ");
document.write(document.f4.elements[3].name + "<BR>");
alert("Ahora el botón Enviar obtendrá el foco...");
document.f4.submit.focus();
</SCRIPT>
</BODY>
34
10. Ejemplos de Manejadores de Eventos:
A continuación veremos algunos ejemplos prácticos usando manejadores de eventos.
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onLoad</TITLE>
<SCRIPT LANGUAGE="javascript">
function bienvenida() {
alert("Bienvenido a nuestro sitio web!");
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="CadetBlue" onLoad="bienvenida();">
<H2 ALIGN=CENTER>Ejemplo 10.1</H2>
</BODY>
</HTML>
Nota: El evento Load es manejado como el evento onLoad en la etiqueta <BODY>, la cual ejecuta la
función "bienvenida()" definida en la etiqueta <HEAD>. La función se ejecuta al cargarse la página.
Observe que el llamado a la función debe estar entre comillas simples o dobles.
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onMouseDown</TITLE>
<SCRIPT LANGUAGE="javascript">
function cambio() {
if (document.foto.width == "200")
document.foto.width = "300";
else
document.foto.width = "200";
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="Brass">
<H2 ALIGN=CENTER>Ejemplo 10.2</H2>
<IMG NAME="foto" SRC="imagen1.jpg" WIDTH="200" onMouseDown="cambio();">
<br>
Presione cualquier botón del ratón sobre la imagen...
</BODY>
</HTML>
Nota: Puede probar este ejemplo sustituyendo el evento onMouseDown por el evento onClick.
35
10.3. Ejemplo de Evento Click sobre un botón:
Este ejemplo permite ingresar dos números en campos de texto para luego ser sumados al pulsar
un botón. Existe otro botón para limpiar las casillas de texto. Aquí se maneja el evento onClick en
ambos botones:
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onClick</TITLE>
<SCRIPT LANGUAGE="javascript">
function sumar() {
valor=parseFloat(document.f3.n1.value)+parseFloat(document.f3.n2.value);
document.f3.resp.value = valor;
}
function borrar() {
document.f3.n1.value = "";
document.f3.n2.value = "";
document.f3.resp.value = "";
document.f3.n1.focus();
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="LightSteelBlue">
<H2 ALIGN=CENTER>Ejemplo 10.3</H2>
<FORM NAME="f3">
Primer Número: <INPUT TYPE="TEXT" NAME="n1" SIZE="10"> <BR>
Segundo Número: <INPUT TYPE="TEXT" NAME="n2" SIZE="10"> <BR>
Respuesta: <INPUT TYPE="TEXT" NAME="resp" SIZE="10"> <BR>
<INPUT TYPE="BUTTON" NAME="b1" VALUE="Sumar" onClick='sumar();'>
<INPUT TYPE="BUTTON" NAME="b2" VALUE="Borrar" onClick='borrar();'>
</FORM>
</BODY></HTML>
Nota: Si se introducen valores no numéricos (ejemplo "abc"), al efectuar la suma se muestra NaN. Los
valores ingresados no están validados.
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onBlur</TITLE>
<SCRIPT LANGUAGE="javascript">
function validar() {
noválido = isNaN(document.f5.ced.value);
if (noválido) {
alert("Debe introducir una cédula válida");
document.f5.ced.focus();
}
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="MediumOrchid">
<H2 ALIGN=CENTER>Ejemplo 10.5</H2>
<FORM NAME="f5">
Cédula:
<INPUT TYPE="TEXT" NAME="ced" SIZE=8 MAXLENGTH=8 onBlur="validar();"><BR>
Nombre: <INPUT TYPE="TEXT" NAME="nom" SIZE="20"> <BR>
<INPUT TYPE="SUBMIT" NAME="sub" VALUE="Enviar">
</FORM>
</BODY>
</HTML>
Nota: Queda como tarea hacer las modificaciones pertinetes para validar que la casilla no esté vacía y no
tenga puntos (.) intermedios (puede usar la función charAt(n)).
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onClick</TITLE>
<SCRIPT LANGUAGE="javascript">
function mostrar(lafoto) {
document.foto.src = lafoto;
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="SlateBlue">
<H2 ALIGN=CENTER>Ejemplo 10.6</H2>
<FORM NAME="f5">
Nombre: <INPUT TYPE="TEXT" NAME="nombre" SIZE="20"> <BR>
Por favor, seleccione su Sexo: <BR>
<INPUT TYPE="RADIO" NAME="sexo" VALUE="M" CHECKED
onClick="mostrar('hombre.jpg');"> Masculino <BR>
<INPUT TYPE="RADIO" NAME="sexo" VALUE="F"
onClick="mostrar('mujer.jpg');"> Femenino <BR>
<IMG NAME="foto" SRC="hombre.jpg" WIDTH="150"> <BR>
<INPUT TYPE="SUBMIT" NAME="subm" VALUE="Enviar">
</FORM>
</BODY>
</HTML>
37
10.7. Ejemplo de Evento Click sobre un Checkbox:
Este ejemplo muestra un formulario para apartar accesorios de computadora. Se muestra una
tabla con tres Checkbox para seleccionar los accesorios y su precio. Cada vez que se hace clic en un
Checkbox se muestra un resumen con los accesorios seleccionados y el precio total:
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onClick</TITLE>
<SCRIPT LANGUAGE="javascript">
function totalizar() {
cadena = ""; total = 0;
if (document.f7.pen.checked) {
cadena = cadena + document.f7.pen.value + "\n";
total = total + 150;
}
if (document.f7.tec.checked) {
cadena = cadena + document.f7.tec.value + "\n";
total = total + 100;
}
if (document.f7.rat.checked) {
cadena = cadena + document.f7.rat.value + "\n";
total = total + 80;
}
document.f7.resumen.value = cadena + "Total BsF." + total;
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="Thistle">
<H2 ALIGN=CENTER>Ejemplo 10.7</H2>
<FORM NAME="f7">
Nombre: <INPUT TYPE="TEXT" NAME="nombre" SIZE="20"> <BR>
Deseo apartar los siguientes accesorios: <BR>
<TABLE BORDER="1" WIDTH="300" BGCOLOR="#00CCCC">
<TR>
<TH>Accesorio </TH> <TH>Precio BsF </TH>
</TR>
<TR>
<TD> <INPUT TYPE="CHECKBOX" NAME="pen" VALUE="Pen Drive 8Gb"
onClick="totalizar();"> Pen Drive 8Gb </TD>
<TD> 150 </TD>
</TR>
<TR>
<TD> <INPUT TYPE="CHECKBOX" NAME="tec" VALUE="Teclado"
onClick="totalizar();"> Teclado <BR> </TD>
<TD> 100 </TD>
</TR>
<TR>
<TD> <INPUT TYPE="CHECKBOX" NAME="rat" VALUE="Ratón"
onClick="totalizar();"> Ratón <BR> </TD>
<TD> 80 </TD>
</TR>
</TABLE>
Resumen: <BR>
<TEXTAREA NAME="resumen" COLS="30" ROWS="5" READONLY>(vacío)</TEXTAREA>
<BR>
<INPUT TYPE="SUBMIT" NAME="sub" VALUE="Enviar">
<INPUT TYPE="RESET" NAME="res" VALUE="Limpiar">
</FORM>
</BODY>
</HTML>
38
10.8. Ejemplo de Evento Click sobre un botón:
Este ejemplo calcula la diferencia de días entre dos fechas. Permite ingresar dos fechas y al
pulsar clic sobre un botón se muestra los días transcurridos entre las dos fechas:
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onClick</TITLE>
<SCRIPT LANGUAGE="javascript">
function calcu() {
var k1 = new Date();
var k2 = new Date();
k1 = cambiarFormato(document.f8.fecha1.value);
k2 = cambiarFormato(document.f8.fecha2.value);
//calcula los milisegundos desde el día 1 de enero de 1970
var miliseg1 = k1.getTime();
var miliseg2 = k2.getTime();
var dias = Math.abs((miliseg2 - miliseg1)/1000/60/60/24);
document.f8.dias.value = dias;
}
function cambiarFormato(fech) {
//cambia el formato de la fecha tipo String a tipo Date
var arreglo;
var nuevaFecha = new Date();
if (fech.length > 0) {
arreglo = fech.split("/");
nuevaFecha.setDate(parseInt(arreglo[0]));
//indice del mes empieza en cero
nuevaFecha.setMonth(parseInt(arreglo[1])-1);
nuevaFecha.setFullYear(parseInt(arreglo[2]));
return nuevaFecha;
}
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="SeaGreen">
<H2 ALIGN=CENTER>Ejemplo 10.8</H2>
<FONT COLOR="RED" SIZE="5">Cálculo de Diferencia de Días</FONT> <BR>
<HR>
<FORM NAME="f8">
<P>Introduzca la primera fecha (dd/mm/aaaa):
<INPUT TYPE="TEXT" NAME="fecha1" SIZE="10" MAXLENGTH="10"> </P>
<P>Introduzca la segunda fecha (dd/mm/aaaa):
<INPUT TYPE="TEXT" NAME="fecha2" SIZE="10" MAXLENGTH="10"> </P>
<INPUT TYPE="BUTTON" NAME="b1" VALUE="Calcular" onClick='calcu();'>
<INPUT TYPE="RESET" NAME="rst" VALUE="Limpiar">
<P>Diferencia de Días:
<INPUT TYPE="TEXT" NAME="dias" SIZE="10"> </P>
</FORM>
<SCRIPT LANGUAGE="javascript">
document.f8.fecha1.focus();
</SCRIPT>
</BODY>
</HTML>
39
10.9. Ejemplo de Evento Load:
Este ejemplo calcula la diferencia de días entre dos fechas. Permite ingresar dos fechas y al
pulsar clic sobre un botón se muestra los días transcurridos entre las dos fechas:
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onLoad</TITLE>
<SCRIPT LANGUAGE="javascript">
var timerId = null;
function pedirHora() {
fechaActual = new Date();
horas = fechaActual.getHours();
minutos = fechaActual.getMinutes();
segundos = fechaActual.getSeconds();
if (horas >= 12)
ampm = " PM";
else
ampm = " AM";
if (horas > 12)
horas = horas -12;
if (minutos < 10)
minutos = "0" + minutos;
if (segundos < 10)
segundos = "0" + segundos;
horaActual = "" + horas + ":" + minutos + ":" + segundos + ampm;
return horaActual;
}
Nota: Una función recursiva es aquella que se llama o invoca a sí misma dentro de la función.
40
11. Un paso más… El Objeto Select y el objeto Options:
En el tema 8.2.10.3. se hizo referencia al objeto Select que es un elemento de un formulario,
el cual se usa para seleccionar de una lista de elementos. Corresponde a la etiqueta <SELECT> HTML.
El objeto Select tiene propiedades, tales como: name, value, selectedIndex, options,
length, type y form, además de las propiedades focus() y blur().
La propiedad options del objeto Select es un arreglo que contiene todas las opciones
contenidas o por contener en el objeto Select. Así pues, podemos acceder a cada una de las opciones
definidas dentro de las etiquetas <OPTION> en HTML. Este arreglo tiene a su vez algunas propiedades
que permiten manipular o revisar una determinada opción:
Propiedades Descripción
value Representa el valor del atributo value de una determinada opción (<OPTION>).
text Es el texto de la opción. Lo que puede ver el usuario en el Select, que se
escribe después de la etiqueta <OPTION>.
selected Valor booleano que nos dice si la opción está actualmente seleccionada o no. Es
posible cambiar una selección usando esta propiedad (asignando el valor true o
false).
Con este planteamiento, podemos acceder a cualquiera de las opciones de una lista mediante la
referencia:
document.nome_formulario.name_select.options[index].propiedad
El siguiente ejemplo JavaScript recorre y muestra cada opción de una lista. El ejemplo muestra
también como cambiar la selección de una lista desde JavaScript:
<HTML>
<HEAD>
<TITLE>Ejemplo de objeto Options</TITLE>
</HEAD>
<BODY BGCOLOR="Yellow">
<FORM NAME="f">
Lista de Componentes: <BR>
<SELECT NAME="lista">
<OPTION VALUE="monitor">Monitor</OPTION>
<OPTION VALUE="impresora">Impresora</OPTION>
<OPTION VALUE="teclado">Teclado</OPTION>
</SELECT>
<BR>
<INPUT TYPE="SUBMIT" VALUE="Enviar">
</FORM>
<SCRIPT LANGUAGE="javascript">
document.write("Recorriendo las opciones de la lista: <BR>");
var i;
for (i=0; i < document.f.lista.length; i++) {
document.write("valor:" + document.f.lista.options[i].value + "<BR>");
document.write("texto:" + document.f.lista.options[i].text + "<BR>");
}
alert("Ahora seleccionaremos la tercera opción de la lista...");
document.f.lista.options[2].selected = true;
</SCRIPT>
</BODY>
</HTML>
41
11.1. Ejemplo de Evento onChange en una lista:
El siguiente ejemplo JavaScript muestra en una caja de texto el valor seleccionado en la lista:
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onChange</TITLE>
<SCRIPT LANGUAGE="javascript">
function mostrar() {
document.f0.equipo.value = document.f0.lista.value;
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="Gray">
<FORM NAME="f0">
<SELECT NAME="lista" onChange="mostrar()">
<OPTION VALUE="Cardenales">Cardenales</OPTION>
<OPTION VALUE="Magallanes">Magallanes</OPTION>
<OPTION VALUE="Leones">Leones</OPTION>
</SELECT>
<BR>
Equipo seleccionado: <INPUT TYPE="text" NAME="equipo" READONLY>
</FORM>
</BODY>
</HTML>
Nota: El atributo READONLY en un campo de texto no permite que el usuario modifique su contenido.
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onClick</TITLE>
<SCRIPT LANGUAGE="javascript">
function pasar() {
var indice = document.ff.menu.selectedIndex;
var valor = document.ff.menu.options[indice].value;
var texto = document.ff.menu.options[indice].text;
document.ff.caja1.value = valor;
document.ff.caja2.value = texto;
document.ff.caja3.value = indice;
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="Silver">
<FORM NAME="ff">
Lista de entretenimientos: <BR>
<SELECT NAME="menu">
<OPTION VALUE="opcion1">Cine</OPTION>
<OPTION VALUE="opcion2">Música</OPTION>
<OPTION VALUE="opcion3">Deporte</OPTION>
</SELECT> <BR>
<INPUT TYPE="BUTTON" VALUE="Pasar valores" onClick="pasar()"> <BR><BR>
value:<INPUT TYPE="text" NAME="caja1" READONLY> <BR>
texto:<INPUT TYPE="text" NAME="caja2" READONLY> <BR>
índice:<INPUT TYPE="text" NAME="caja3" SIZE="1" READONLY> <BR>
</FORM>
</BODY>
</HTML>
42
11.3. El constructor New Option:
El objeto Select posee también un constructor propio, new Option, que nos va a permitir
introducir dinámicamente una o varias opciones nuevas dentro de una lista. La sintaxis genérica de este
constructor es:
nuevaopcion = new Option("texto","valor", "defaultSelected", "selected")
en donde "texto" va a ser el texto asociado a la nueva opción y "valor" su value asociado.
Además, podemos agregar "defaultSelected" si queremos que sea la opción seleccionada por
defecto en la lista y "selected" si queremos que sea la seleccionada sólo en el momento de crearla.
Una vez creada la nueva opción hay que introducirla en la lista. Esto se consigue mediante:
document.name_formulario.name_select.options[indice] = nuevaopcion
en donde indice debe ser n+1, es decir, el indice debe ser una unidad mayor que el último que tenga
anteriormente el Select, ya que si le ponemos como indice uno ya existente en lugar de crear uno
nueva opción lo que haríamos sería sustituir una existente por la nueva.
43
En el ejemplo anterior, se agregaron los botones "eliminar" y "eliminar todos". Es
posible eliminar un elemento de la lista de la siguiente forma:
document.name_formulario.name_select.options[indice] = null
en donde indice correponde al indice de la opción que se desea eliminar. Además, si deseamos
eliminar todos los elementos de la lista simplemente escribimos:
document.name_formulario.name_select.length = 0
donde el cero (0) indica la cantidad de elementos que deseamos dejar en la lista. Si colocamos en lugar
de cero (0) un uno (1) entonces la lista contendrá solo el primer elemento.
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onClick</TITLE>
<SCRIPT LANGUAGE="javascript">
function pasarLado2() {
if (document.f.lista1.selectedIndex != -1) {
indice = document.f.lista1.selectedIndex;
texto = document.f.lista1.options[indice].text;
valor = document.f.lista1.options[indice].value;
nueva = new Option(texto, valor);
ultimo = document.f.lista2.length;
document.f.lista2.options[ultimo] = nueva;
//borrar opcion de la lista1
document.f.lista1.options[indice] = null;
}
}
function pasarLado1() {
if (document.f.lista2.selectedIndex != -1) {
indice = document.f.lista2.selectedIndex;
texto = document.f.lista2.options[indice].text;
valor = document.f.lista2.options[indice].value;
nueva = new Option(texto, valor);
ultimo = document.f.lista1.length;
document.f.lista1.options[ultimo] = nueva;
//borrar opcion de la lista2
document.f.lista2.options[indice] = null;
}
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="RichBlue">
<FORM NAME="f">
<TABLE BORDER="1">
<TR>
<TD WIDTH="130">
<SELECT NAME="lista1" SIZE="4">
<OPTION VALUE="Luke Skywalker">Luke Skywalker</OPTION>
<OPTION VALUE="Obi-Wan Kenobi">Obi-Wan Kenobi</OPTION>
<OPTION VALUE="Darth Vader">Darth Vader</OPTION>
</SELECT>
</TD>
<TD> <DIV>
<INPUT TYPE="button" VALUE="Mover >" onclick="pasarLado2()"><br>
<INPUT TYPE="button" VALUE="< Mover" onclick="pasarLado1()">
</DIV></TD>
<TD WIDTH="130">
<SELECT NAME="lista2" SIZE="4">
</SELECT>
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
45
11.7. Ejemplo de validación de una fecha usando listas Select:
Este ejemplo permite validar una fecha:
<HTML>
<HEAD>
<TITLE>Ejemplo de validación de fecha</TITLE>
<SCRIPT LANGUAGE="javascript">
function cambioAño() {
// si seleccionó un año
if (document.f.año.selectedIndex > 0) {
// si la lista mes esta vacía
if (document.f.mes.length == 1) {
meses = new Array("Enero","Febrero","Marzo","Abril","Mayo","Junio",
"Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
for (i=0; i < meses.length; i++) {
nueva = new Option(meses[i], meses[i]);
document.f.mes.options[document.f.mes.length] = nueva;
}
} else { //sino, es porque la lista mes ya tiene los meses
if (document.f.mes.selectedIndex == 2) {
if (esBisiesto() && document.f.dia.length-1 == 28) {
//poner lista dia hasta 29
nueva = new Option(29, 29);
document.f.dia.options[document.f.dia.length] = nueva;
}
if (!esBisiesto() && document.f.dia.length-1 == 29)
document.f.dia.length = 28+1; //poner lista dia hasta 28
}
} //fin del else
} else { //si seleccionó la palabra "Año" de la lista
document.f.mes.length = 1;
document.f.dia.length = 1;
} //fin del else
}
function cambioMes() {
//si seleccionó un mes
if (document.f.mes.selectedIndex > 0) {
var elMes = document.f.mes.selectedIndex;
var finDia = 31;
if (elMes == 4 || elMes == 6 || elMes == 9 || elMes == 11)
finDia = 30;
if (elMes == 2) {
if (esBisiesto())
finDia = 29;
else finDia = 28;
}
//si la lista dia esta vacía
if (document.f.dia.length == 1) {
for (i=1; i <= finDia; i++) {
nueva = new Option(i, i);
document.f.dia.options[document.f.dia.length] = nueva;
}
} else { //sino, es porque la lista dia ya tiene los dias
if (document.f.dia.length-1 > finDia)
document.f.dia.length = finDia+1;
else if (document.f.dia.length-1 < finDia) {
for (i=document.f.dia.length; i <= finDia; i++) {
nueva = new Option(i, i);
document.f.dia.options[document.f.dia.length] = nueva;
}
46
} //fin del else if
} //fin del else
}
else //si seleccionó la palabra "Mes" de la lista
document.f.dia.length = 1;
}
function esBisiesto() {
var miAño = parseInt(document.f.año.value);
resp = ((miAño % 4 == 0) && ((miAño % 100 != 0) || (miAño % 400 == 0)));
return resp;
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="Tan">
<H2 ALIGN=CENTER>Ejemplo 11.7</H2>
<FONT COLOR="BLUE" SIZE="5">Validación de Fecha</FONT> <BR>
<HR>
<FORM NAME="f">
<P>Fecha de Nacimiento:
<SELECT NAME="año" onChange="cambioAño();">
<OPTION VALUE="Año">Año</OPTION>
<OPTION VALUE="1989">1989</OPTION>
<OPTION VALUE="1990">1990</OPTION>
<OPTION VALUE="1991">1991</OPTION>
<OPTION VALUE="1992">1992</OPTION>
</SELECT>
<SELECT NAME="mes" onChange="cambioMes();">
<OPTION VALUE="Mes">Mes</OPTION>
</SELECT>
<SELECT NAME="dia">
<OPTION VALUE="Dia">Dia</OPTION>
</SELECT> </P>
<INPUT TYPE="RESET" NAME="rest" VALUE="Limpiar">
</FORM>
</BODY>
</HTML>
Nota: La regla para los años bisiestos según el calendario gregoriano es:
Un año es bisiesto si es divisible por 4, excepto el último de cada siglo (aquel divisible por 100),
salvo que este último sea divisible por 400.
Es decir los años que sean divisibles por 4 serán bisiestos; aunque no serán bisiestos si son
divisibles entre 100 (como los años 1700, 1800, 1900 y 2100) a no ser que sean divisibles por 400 (como
los años 1600, 2000 ó 2400). En 400 años debe haber 97 años bisiestos, de esa manera el año del
calendario gregoriano se mantiene muy parecido al año solar. Así el año gregoriano dura 365 días +1/4 -
1/100 +1/400 = 365,2425 días.
47
11.8. Ejemplo de validación en el envío de un formulario:
En este ejercicio se evalúa que las casillas de texto no estén vacías, que la cédula tenga
caracteres numéricos y que haya seleccionado un botón de radio, al menos un checkbox y un elemento
de la lista. Esta validación se efectúa al momento de presionar el botón submit. Si hay algún error, se
envía un mensaje (alert) y no se envía el formulario:
<HTML>
<HEAD>
<TITLE>Ejemplo de evento onLoad</TITLE>
<SCRIPT LANGUAGE="javascript">
function validacion() {
if (document.f.ced.value.length == 0 || isNaN(document.f.ced.value)) {
alert('[ERROR] Debe ingresar una CÉDULA válida...');
document.f.cedula.focus();
return false;
}
else if (document.f.nombre.value.length == 0) {
alert('[ERROR] Debe ingresar su NOMBRE...');
document.f.nombre.focus();
return false;
}
else if (!document.f.sexo[0].checked && !document.f.sexo[1].checked) {
alert('[ERROR] Debe seleccionar su SEXO...');
document.f.sexo[0].focus();
return false;
}
else if (!document.f.ttr.checked && !document.f.dep.checked &&
!document.f.bai.checked) {
alert('[ERROR] Seleccione al menos una Actividad Extracurricular');
document.f.ttr.focus();
return false;
}
else if (document.f.pnf.value == "opcion0") {
alert('[ERROR] Debe seleccionar un P.N.F...');
document.f.pnf.focus();
return false;
}
// Si el script ha llegado a este punto, todas las condiciones
// se han cumplido, por lo que se devuelve el valor true
return true;
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="MediumAquamarine">
<H2 ALIGN=CENTER>Ejemplo 11.8</H2>
<FONT COLOR="BLUE" SIZE="5">Validación de Formulario</FONT> <BR>
<HR>
<FORM NAME="f" onSubmit="return validacion()">
<TABLE BORDER="1">
<TR>
<TD WIDTH="180"> Ingrese su Cédula: </TD>
<TD WIDTH="250">
<SELECT NAME="nac">
<OPTION VALUE="V">V</OPTION>
<OPTION VALUE="E">E</OPTION>
</SELECT>
<INPUT TYPE="TEXT" NAME="ced" SIZE="8" MAXLENGTH="8">
</TD>
</TR>
48
<TR>
<TD WIDTH="180"> Ingrese su Nombre: </TD>
<TD WIDTH="250">
<INPUT TYPE="TEXT" NAME="nombre" SIZE="30" MAXLENGTH="30">
</TD>
</TR>
<TR>
<TD WIDTH="180"> Ingrese su sexo: </TD>
<TD WIDTH="250">
<INPUT TYPE="RADIO" NAME="sexo" VALUE="M">Masculino
<INPUT TYPE="RADIO" NAME="sexo" VALUE="F">Femenino
</TD>
</TR>
<TR>
<TD WIDTH="180"> Actividad extracurricular: </TD>
<TD WIDTH="250">
<INPUT TYPE="CHECKBOX" NAME="ttr" VALUE="Teatro"> Teatro
<INPUT TYPE="CHECKBOX" NAME="dep" VALUE="Deporte"> Deporte
<INPUT TYPE="CHECKBOX" NAME="bai" VALUE="Baile"> Baile
</TD>
</TR>
<TR>
<TD WIDTH="180"> Ingrese el P.N.F. a estudiar: </TD>
<TD WIDTH="250">
<SELECT NAME="pnf">
<OPTION VALUE="opcion0">--elije un P.N.F.--</OPTION>
<OPTION VALUE="Estudios Jurídicos">Estudios Jurídicos</OPTION>
<OPTION VALUE="Gestión Social">Gestión Social</OPTION>
</SELECT>
</TD>
</TR>
<TR>
<TD WIDTH="180">
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Enviar">
<INPUT TYPE="RESET" NAME="reset" VALUE="Limpiar">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
Nota: Si la función invocada por el evento onSubmit retorna false, el formulario no se envía.
-------- o --------
49