Input para leer código de barras - JQUERY
Si alguna vez has usado un lector de códigos de barra te has dado cuenta que el código escaneado por el lector se ingresa directamente en la caja de texto que tengamos seleccionada. si queremos procesar ese código, debemos descartar el keypress, ya que no se utiliza el teclado, así como el evento change que no resultara hasta que des-seleccionemos la caja de texto, también el evento paste, ya que el lector no pega ni almacena nada en el porta papeles, que nos queda? una forma que pense, es usar el evento propertychange input, y funciono a la maravilla, pero luego de que se terminara de ingresar el codigo, tenia ejecutar un evento para guardar ese codigo, pense hasta que encontré la solución en un foro de Internetcreo una función, que esperara a que se termine de ingresar el código de barras a la caja, para poder ser ejecutara
$.fn.delayPasteKeyUp = function(fn, ms)
{
var timer = 0;
$(this).on("propertychange input", function()
{
clearTimeout(timer);
timer = setTimeout(fn, ms);
});
};
ahora, usamos este funcion en el on("ready") de jquery:
$(document).ready(function()
{
$("#ingreso").delayPasteKeyUp(function(){
$("#respuesta").append("Producto registrado: "+ $("#ingreso").val() +"
");
$("#ingreso").val("");
}, 200);
});
en el html solo agregamos estos 2 elementos:
puedes probar el ejemplo Aca














5 comentarios: