les cuento, tengo una aplicación que hace un cierre de caja, donde tienes que especificar cuanto efectivo tienes cuanto en crédito, en débito.
Para hacer esto use el Evento KEYUP de jquery:
Código Javascript:
Ver original
$('#corte_caja').keyup( function () {...
pero por alguna razón la suma no es tan "Automatica" puesto que depende de que se paseen por los input, y como uno de ellos cambia (un Input obtiene el valor de las ventas diarias desde una BD para comprar si ha faltado o sobrado dinero)
Entonces pensé será que hago que la suma se haga cada cierto tiempo? con SetInterval? pero no estoy muy seguro... alguien puede ayudarme? quizas no este haciendo todo de la mejor manera, les muestro el codigo que ocupo:
Código Javascript:
Ver original
$.fn.sumVal = function() { var sum = 0; this.each(function() { if ( $(this).is(':input') ) { var val = $(this).val(); } else { var val = $(this).text(); } if($.isNumeric(val)){ //alert('numero'); val=val; }else{ //alert('No Numero'); val=0; } sum += parseFloat( ('0' + val).replace(/[^0-9-\.]/g, ''), 10 ); }); return sum; }; $(document).ready(function() { jQuery("#fecha1").dynDateTime(); //Detalles X $('#mefectx').validCampoFranz('.0123456789'); $('#mtdcx').validCampoFranz('.0123456789'); $('#mtpx').validCampoFranz('.0123456789'); $('#mtdbx').validCampoFranz('.0123456789'); $('#mtex').validCampoFranz('.0123456789'); $('#tcajax').validCampoFranz('.0123456789'); //Detalles Z $('#reporz').validCampoFranz('0123456789'); $('#montorvz').validCampoFranz('.0123456789'); $('#montoriz').validCampoFranz('.0123456789'); $('#mefectz').validCampoFranz('.0123456789'); $('#mtdcz').validCampoFranz('.0123456789'); $('#mtpz').validCampoFranz('.0123456789'); $('#mtdbz').validCampoFranz('.0123456789'); $('#mtez').validCampoFranz('.0123456789'); $('#tcajaz').validCampoFranz('.0123456789'); //Devoluciones $('#mdevz').validCampoFranz('.0123456789'); $('#mdeviz').validCampoFranz('.0123456789'); //totales $('#tcaja').validCampoFranz('.0123456789'); $('#tvale').validCampoFranz('.0123456789'); $( "#fecha1" ).blur(function() { if ($(this).val()!=null){ var fecha = $('#fecha1').val().split("/"); $.ajax({ type: 'post', url: 'ventas.php', data: "dia="+fecha[0]+"&mes="+fecha[1]+"&ano="+fecha[2], dataType: 'json', success: function(data) { var Facturas = data[0]; var Devoluciones = data[1]; var Facturado = data[2]; $('#tvale').val(Facturado); }, error: function() { alert( "Ocurrió un Error al Consultar las Ventas, Intentelo nuevamente." );} }); } else{ alert('El campo Fecha debe tener una Fecha Válida'); } }); // Cambie BLUR por KEYUP $('#corte_caja').keyup( function () { //$('#corte_caja').delegate('input[type=text]', 'keyup', function () { var montosx = $('.sumar_montox').sumVal(); $('#tcajax').val(montosx); var montosz = $('.sumar_montoz').sumVal(); $('#tcajaz').val(montosz); $('#tcaja').val(parseFloat(montosz)+parseFloat(montosx)); $('#montoZ').val(parseFloat($('#montorvz').val())+parseFloat($('#montoriz').val())); var dmf = 0, dc = 0; dmf = ((parseFloat($('#montorvz').val() || 0)+parseFloat($('#montoriz').val() || 0)) - (parseFloat($('#mdevz').val() || 0)+parseFloat($('#mdeviz').val() || 0)) - parseFloat($('#tvale').val() || 0)); dc = (parseFloat($('#tcaja').val()) - parseFloat($('#tvale').val())); $('#dmq').val(dmf.toFixed(2)); $('#dc').val(dc.toFixed(2)); if (Math.abs(dmf)>5){ $('#alertdmq').val('1');} else{ $('#alertdmq').val('0'); } if (Math.abs(dc)>5){ $('#alertdc').val('1');} else{ $('#alertdc').val('0'); } }); });
Agradezco, toda la ayuda posible.