Uninstallme

La Web se ideó cuadrada.

Evitar la introducción de caracteres no numéricos en campos de texto con Javascript

18 de Diciembre 2008

Una buena forma de evitar errores del usuario al rellenar formularios, es no dar lugar a que se produzcan y uno de los casos en los que esto es posible, es el de los típicos formularios que solicitan un número de cuenta bancaria.

La siguiente función usada con el evento onkeydown en campos de texto, comprueba que el caracter introducido sea la tecla tabulador o delete, cualquier número del 0 al 9 en el teclado normal, cualquier número del 0 al 9 en el teclado numérico, la tecla control o F5.


function esValorNumerico(event){
	if(!event) event = event || window.event;
	return (
		(event.keyCode > 7 && event.keyCode < 10)       // delete (8) o tabulador (9)
		|| (event.keyCode > 47 && event.keyCode < 60)   // números del teclado
		|| (event.keyCode > 95 && event.keyCode < 106)  // números del teclado numérico
		|| event.keyCode == 17   // Ctrl
		|| event.keyCode == 116  // F5
	)
}

Evitaríamos la introducción de cualquier caracter que no sea uno de los especificados, devolviendo false si la condición no se cumple.


inputs[i].onkeydown = function(event){
	if(!esValorNumerico(event)) return false;
}

¿Por qué con el evento onkeydown y no con onkeypress?

Por suerte, onkeydown funciona igual en todos los navegadores. Onkeypress sin embargo, devuelve 0 como keyCode para las teclas especiales, entre las que se encuentran los números, además de presentar diferencias importantes de funcionamiento entre Internet Explorer y el resto de navegadores.

Por cierto, con este problemilla he tenido la ocasión de comprobar que los códigos que se pueden encontrar por Internet para realizar esta acción son bastante prehistóricos (optimizados para Netscape 4). ¿Tendrán algo que ver los frameworks Javascript…?

Más información

Archivado en How to, Javascript

Comentar

Crear efectos de transición con Mootools

29 de Agosto 2008

Mootools es una librería Javascript muy parecida a Prototype pero que permite crear efectos de movimiento, opacidad, color, etc. sin necesidad de usar una librería adicional como Scriptaculous. Su peso comprimida es de 60Kb y tiene una muy buena documentación también disponible offline. Además es una de las librerías Javascript que podemos encontrar en las librerías Ajax de Google.

Para crear efectos de transición con Mootools usamos la clase Fx.

Continúa en "Crear efectos de transición con Mootools"

Archivado en CSS, Javascript

1 Comentario