Micaela 16 de abril de 2009 a las 09.10
   Imprimir artículo
elWebmaster.com

JavaScript: llamando eventos inline


javascript_125x125Existen varias formas de llamar eventos en JavaScript, pero la más popular de ellas es hacerlo como atributos inline.

Usualmente hay cierta confusión en lo que respecta a cuál es la forma apropiada de designar eventos inline en JavaScript, manteniendo la compostura de la aplicación si JavaScript está desactivado. En esta nota despejaremos las dudas con respecto a este asunto.

La forma más comunmente utilizada luce más o menos así:

<a href="#" onclick="my_function()">Link</a>

Aquí utilizamos el caracter numeral (#) como el valor href. Esto se debe a que necesitamos poner algo ahí, aunque sólo nos preocuparemos por el evento onclick. Pero que ésta no es la mejor forma de hacerlo, debido a que falla si JavaScript está apagado.

¿Qué hacemos entonces? Lo ideal sería proveer de una locación real como valor href:

<a href="page.htm" onclick="my_function(); return false;">Link</a>

Éste último modo es más seguro, porque si JavaScript está apagado, el navegador simplemente irá a page.htm, e ignorará el atributo onclick.

my_function() podría verse más o menos así:

function my_function()

{

window.location = "page.htm";

}

Con JavaScript encendido, el navegador reconoce el atributo onclick. Además añadimos la inline return false, para que el link no vaya a ningún lado hasta que nosotros se lo explicitemos mediante la función my_function. Esto resulta útil en caso de que tengamos razones para querer que el link no funcione momentáneamente.

Lo mismo para <form>

Esta aproximación debería ser consistente al manejar formularios HTML:

<form method="post" action="page.php" id="my_form" onsubmit="validate(); return false;">

Nuevamente, si JavaScript se encuentra deshabilitado, el formulario nos enviará directamente a page.php, donde deberemos procesar los detalles del formulario. Si JavaScript está funcionando, primero correremos la función de validación para asegurarnos que los valores del formulario son correctos antes de enviarlos al servidor:

function validate()

{

var my_form = document.getElementById("my_form");

my_form.submit();

}

Aquí enviamos el formulario via JavaScript, pero sólo si ha pasado todas nuestras pruebas de validación. De lo contrario, simplemente no corremos esta línea:

my_form.submit();

Si esa línea no corre, la función devolverá true, luego verá el inline return false y parará todo. Esto es lo que deseamos, porque nosotros queremos parar todo si el formulario no debería ser enviado.

Ten presente, al manejar información enviada a través de formularios, que deberías siempre validar tanto el lado del servidor como el del cliente. Por lo que incluso si pasan las pruebas de validación JavaScript, esas mismas pruebas deberían ser aplicadas en la página PHP.

Fuente: Pain In The Tech


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (1)

  1. Sixto Padron dice:

    Cuando puede JavaScript estár apagado?

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder