jquery更新文本框的总数

时间:2016-02-29 13:42:22

标签: javascript jquery

我有以下jquery函数,它添加了7个文本框,并将总数放在一个总的文本框中:

$(document).ready(function() {
  $('.class2').keyup(function() {
    var sum = 0;
    $('.class2').each(function() {
      sum += Number($(this).val());
    });
    $('#GrandTotal').val((sum).toFixed(2));
  });
});

7个文本框由另一个函数填充。输入数量时,这些文本框将按数量乘以价格自动填充。我遇到的问题是,在您从具有计算价格的文本框中跳出之前,不会填充总计文本框。但是,如果我直接在文本框中输入价格(不使用数量),则总计文本框会立即更新。在输入数量后,我能做些什么来更新总文本框?该页面位于www.pfacmeeting.org/badgeform2.php。感谢您对此的任何帮助。

-cdr6800

1 个答案:

答案 0 :(得分:0)

当您自动填充文本框时,请尝试使用keyup函数触发.trigger()事件:

$(".class2").trigger("keyup");

您应该将脚本更改为:

$('input[name="BadgeQuantity"]').keyup(function(){
    var a = 50;
    var b = $(this).val();
    $('input[name="BadgeTotal"]').val((a * b).toFixed(2));
    $(".class2").trigger("keyup");
});

$('input[name="ThursdayBreakfast"]').keyup(function(){
    var a = 42;
    var b = $(this).val();
    $('input[name="ThursdayBreakfastTotal"]').val((a * b).toFixed(2));
    $(".class2").trigger("keyup");
});

$('input[name="ThursdayLunch"]').keyup(function(){
    var a = 53;
    var b = $(this).val();
    $('input[name="ThursdayLunchTotal"]').val((a * b).toFixed(2));
    $(".class2").trigger("keyup");
});

$('input[name="FridayBreakfast"]').keyup(function(){
    var a = 42;
    var b = $(this).val();
    $('input[name="FridayBreakfastTotal"]').val((a * b).toFixed(2));
    $(".class2").trigger("keyup");
});

$('input[name="FridayLunch"]').keyup(function(){
    var a = 53;
    var b = $(this).val();
    $('input[name="FridayLunchTotal"]').val((a * b).toFixed(2));
    $(".class2").trigger("keyup");
});

$('input[name="FridayDinner"]').keyup(function(){
    var a = 115;
    var b = $(this).val();
    $('input[name="FridayDinnerTotal"]').val((a * b).toFixed(2));
    $(".class2").trigger("keyup");
});

$('.DrawingTickets').change(function(){
    var selectedValue = parseFloat($(this).val());
    $('#DrawingTicketsTotal').val((selectedValue).toFixed(2));
    $(".class2").trigger("keyup");
});


  $('.class2').keyup(function() {
    var sum = 0;

    $('.class2').each(function() {
      sum += Number($(this).val());
    });

    $('#GrandTotal').val((sum).toFixed(2));

  });