Foros del Web » Programando para Internet » Jquery »

Sumar valores automaticamente

Estas en el tema de Sumar valores automaticamente en el foro de Jquery en Foros del Web. Buenas tardes amigos busco una manera muy (anti tontos) de sumar valores automaticamente en los Input. les cuento, tengo una aplicación que hace un cierre ...
  #1 (permalink)  
Antiguo 10/07/2014, 14:52
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Pregunta Sumar valores automaticamente

Buenas tardes amigos busco una manera muy (anti tontos) de sumar valores automaticamente en los Input.

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
  1. $('#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
  1. $.fn.sumVal = function() {
  2.         var sum = 0;
  3.         this.each(function() {
  4.             if ( $(this).is(':input') ) {
  5.                 var val = $(this).val();
  6.             } else {
  7.                 var val = $(this).text();
  8.             }
  9.             if($.isNumeric(val)){
  10.                 //alert('numero');
  11.                 val=val;
  12.             }else{
  13.                 //alert('No Numero');
  14.                 val=0;
  15.                 }
  16.             sum += parseFloat( ('0' + val).replace(/[^0-9-\.]/g, ''), 10 );    
  17.         });
  18.         return sum;
  19.     };
  20.     $(document).ready(function() {
  21.         jQuery("#fecha1").dynDateTime();
  22.         //Detalles X
  23.         $('#mefectx').validCampoFranz('.0123456789');
  24.         $('#mtdcx').validCampoFranz('.0123456789');
  25.         $('#mtpx').validCampoFranz('.0123456789');     
  26.         $('#mtdbx').validCampoFranz('.0123456789');
  27.         $('#mtex').validCampoFranz('.0123456789');     
  28.         $('#tcajax').validCampoFranz('.0123456789');
  29.         //Detalles Z
  30.         $('#reporz').validCampoFranz('0123456789');
  31.         $('#montorvz').validCampoFranz('.0123456789');
  32.         $('#montoriz').validCampoFranz('.0123456789');
  33.         $('#mefectz').validCampoFranz('.0123456789');
  34.         $('#mtdcz').validCampoFranz('.0123456789');
  35.         $('#mtpz').validCampoFranz('.0123456789');     
  36.         $('#mtdbz').validCampoFranz('.0123456789');
  37.         $('#mtez').validCampoFranz('.0123456789');     
  38.         $('#tcajaz').validCampoFranz('.0123456789');
  39.         //Devoluciones
  40.         $('#mdevz').validCampoFranz('.0123456789');    
  41.         $('#mdeviz').validCampoFranz('.0123456789');
  42.         //totales
  43.         $('#tcaja').validCampoFranz('.0123456789');
  44.         $('#tvale').validCampoFranz('.0123456789');
  45.        
  46.         $( "#fecha1" ).blur(function() {
  47.             if ($(this).val()!=null){
  48.                 var fecha = $('#fecha1').val().split("/");
  49.                 $.ajax({
  50.                     type: 'post',
  51.                     url: 'ventas.php',
  52.                     data: "dia="+fecha[0]+"&mes="+fecha[1]+"&ano="+fecha[2],
  53.                     dataType: 'json',
  54.                     success: function(data)
  55.                     {
  56.                         var Facturas = data[0];
  57.                         var Devoluciones = data[1];
  58.                         var Facturado = data[2];
  59.                         $('#tvale').val(Facturado);
  60.                         },
  61.                         error: function()
  62.                         {
  63.                         alert( "Ocurrió un Error al Consultar las Ventas, Intentelo nuevamente." );}
  64.                     });
  65.                 }
  66.                 else{
  67.                     alert('El campo Fecha debe tener una Fecha Válida');
  68.                 }
  69.             });
  70.             // Cambie BLUR por KEYUP
  71.             $('#corte_caja').keyup( function () {
  72.             //$('#corte_caja').delegate('input[type=text]', 'keyup', function () {
  73.                 var montosx = $('.sumar_montox').sumVal();
  74.                 $('#tcajax').val(montosx);
  75.                 var montosz = $('.sumar_montoz').sumVal();
  76.                 $('#tcajaz').val(montosz);
  77.                
  78.                 $('#tcaja').val(parseFloat(montosz)+parseFloat(montosx));
  79.                 $('#montoZ').val(parseFloat($('#montorvz').val())+parseFloat($('#montoriz').val()));               
  80.                
  81.                 var dmf = 0, dc = 0;
  82.                 dmf = ((parseFloat($('#montorvz').val() || 0)+parseFloat($('#montoriz').val() || 0)) - (parseFloat($('#mdevz').val() || 0)+parseFloat($('#mdeviz').val() || 0)) - parseFloat($('#tvale').val() || 0));
  83.                 dc =  (parseFloat($('#tcaja').val()) -  parseFloat($('#tvale').val()));
  84.                 $('#dmq').val(dmf.toFixed(2));
  85.                 $('#dc').val(dc.toFixed(2));
  86.                 if (Math.abs(dmf)>5){
  87.                     $('#alertdmq').val('1');}
  88.                     else{
  89.                         $('#alertdmq').val('0');
  90.                     }
  91.                 if (Math.abs(dc)>5){
  92.                     $('#alertdc').val('1');}
  93.                     else{
  94.                         $('#alertdc').val('0');
  95.                     }
  96.                 });        
  97.         });

Agradezco, toda la ayuda posible.

Etiquetas: ajax, automaticamente, input, javascript, js, php, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:50.