keyValue jQuery y mi reseña sobre jQuery
February 19th, 2010 by pako received 3 Comments »En estos días he estado trabajando y aprendiendo jQuery, si bien ya he postulado mi punto de vista sobre el uso de frameworks, y lo sigo manteniendo, la gran mayorías de las cosas que JQuery hace las se hacer desde JavaScript puro, y por motivos de trabajo indague en esta librería, que si bien se presta a mucho copy paste y de mas fanfaronada(hacer lo que no se hacer gracias al framework) que es lo que me desagrada de lo que hay alrededor de estas herramientas.
bueno lo que me agrado de jQuery a contra de los que a muchos le llama la atención(las animaciones), lo que creo que son sumamente buenos y una excelente idea son sus selectores que si no me equivoco de alli viene su nombre “Query”, en esta forma de trabajar la verdad jQuery se lleva un 100% ya que ayuda mucho y simplifica el manejo del DOM, solo que hay que tener cuidad de no llamar mucho a los selectores si no tratar de mantener enlaces de memoria a ellos ya que cada que se llama a $() se genera un nuevo objeto jQuery y para que rehacer algo que ya tenemos en memoria, y esto afecta el rendimiento de la aplicación (se hacen algoritmos de mas) aunque esto pasa en todo los framework si no se saben controlar .
otra cosa que me agrado fue la extensión en plugin, y aquí es donde me gustaría enfocarme ahora, me gusta mucho crear librerías, en este post les traigo mi primer plugin para jQuery, es un plugin el cual nos permite colocar un filtro a campos de textos para filtrar los caracteres que se permitirán en el campo de texto, por ejemplo para evitar que el usuario ingrese letras en un campo solo numero, o caracteres no permitidos en un password etc.
sin mas les dejo el código fuente de mi primer plugin
Download: http://www.megaupload.com/?d=JVHRIHMK
/*
* $.fn.keyValue(exp,maxlength)
* By JFco Diaz.
* wariodiaz@gmail.com
* www.devtics.com.mx
* 19/02/2010
* plugin jQuery, para evaluar una entrada en un input x expresión regular
* y poder discriminar el carácter si no se encuentra en la expresión regular
* evitando su inserccion
*
* @param expOarr, es un arreglo de caracteres y/o enteros que representen
* el charCode del carácter a permitir, o bien una expresión regular que indique
* en el patrón los caracteres que se permitirán, ademas opcionalmente coloca un
* máximo de caracteres permitidos
* Nota: la evaluación es del carácter que se esta tecleado no sobre la cadena ingresada
*
* ejemplo:
*
* $(".soloNumeros").keyValue(/[0-9]/);
*
* $(".soloNumeros").keyValue([0,1,2,3,4,5,6,7,8,9]/);
*
* ambos solo permiten la entrada de números o solo caracteres en minúsculas
*
* $(".soloNumeros").keyValue(/[a-z]/);
*
* o solo numeros y "-" y solo 10 caracteres
*
* $(".soloNumeros").keyValue([0,1,2,3,4,5,6,7,8,9,'-'],10);
*
* o con expresión regular
*
* $(".soloNumeros").keyValue(/[0-9-]/,10);
*
* */
(function ($){
$.fn.keyValue=function(expOarr,maxLength){
try{
var $this=$(this);
if(maxLength)
$this.attr("maxlength",maxLength);
$this.keypress(function(event){
try{
var key = event.which;
if(key==0||event.charCode==0)return true;
if(maxLength && this.value.length==maxLength)return false;
if(typeof expOarr ==='object'&& expOarr.length!=undefined){
for(var i=0;(exp=expOarr[i++]);)
if(key==((typeof exp=="number")? exp : exp.charCodeAt(0)))
return true;
return false;
}
return expOarr.test(String.fromCharCode(key));
}catch(e){
alert(e.message);
}
});
}catch(e){
alert(e.message);
}
return $this;
}
})(jQuery);
Posted under: Funciones JavaScript, jQuery, jQuery Plugins, Mi Opinion de...








Muchas gracias compadre. excelente plugin, muy útil de verdad, justo lo que buscaba.
JQuery también tiene lOo elementos de Interface llamado JQuery UI y acaban de lanzar uno para móviles-> http://jquerymobile.com/2010/08/announcing-the-jquery-mobile-project/
Personalmente, pues me ha ayudado bastante a acelerar y crear animaciones estilo flash (personalmente no utilizo flash)
Muy util y funciona muy bien.
nota:
$(“.soloNumeros”).keyValue([0,1,2,3,4,5,6,7,8,9]/);
falta /
deberia quedar asi
$(“.soloNumeros”).keyValue(/[0,1,2,3,4,5,6,7,8,9]/);
y
$(“.soloNumeros”).keyValue([0,1,2,3,4,5,6,7,8,9,'-'],10);
deberia quedar asi
$(“.soloNumeros”).keyValue(/[0,1,2,3,4,5,6,7,8,9,'-']/,10);
almenos con esa correcion, me funcionaron.
Muy util deverdad, gracias.