10

我有一个排序矩阵,其中包含 oneInput 类的输入行,我有一个 jquery 函数,它触发任何这些输入的模糊事件,并对行和列求和,并将总和插入到适当的位置——所有这些像我打算的那样工作。

我要做的是在页面加载时将所有行和列与初始值相加。我在 document.ready 上调用了一个 init() 函数,并且我尝试了以下两种方法都没有成功。

function init(){
  $('.oneInput').trigger('blur');
}

或者

function init(){
    $('.oneInput').each(function(){
      $(this).trigger('blur');
    });
  }

在该模糊事件上触发的函数是这样的:

$(".oneInput").blur(function(){
    // Tally Row
    var thisRow = $(this).closest('tr');
    var rowTotal = 0;
    thisRow.find('input.oneInput').each(function() {
        var n = parseFloat(this.value);
        if(!isNaN(n))
            rowTotal += n;
      });
     $(this).parent().parent().find( 'input.screenOneTotal').empty().val( rowTotal );

     // Tally Column
     var colName = $(this).attr('name');
     var col = colName.substr(0,3);
     var spanName = "input#tot"+col;
     var tot = parseInt($("input[name='"+col+"1']").val())+parseInt($("input[name='"+col+"2']").val())+parseInt($("input[name='"+col+"3']").val())+parseInt($("input[name='"+col+"4']").val())+parseInt($("input[name='"+col+"5']").val())+parseInt($("input[name='"+col+"6']").val())+parseInt($("input[name='"+col+"7']").val())+parseInt($("input[name='"+col+"8']").val())+parseInt($("input[name='"+col+"9']").val())+parseInt($("input[name='"+col+"10']").val())+parseInt($("input[name='"+col+"11']").val())+parseInt($("input[name='"+col+"12']").val());
     $(spanName).empty().val(tot);

     //GRAND TOTAL
     var gTotalOne = parseInt($("#totLIB").html())+parseInt($("#totRPI").html())+parseInt($("#totLMM").html());
     $("#scrOneTotal").empty().html(gTotalOne);
  }); // end inputOne blur

如果需要,我可以提供页面代码的其余部分,但它是在 php 中并且需要一个数据库。

4

2 回答 2

15

只需添加.blur()blur函数的末尾,它将在 DOM 就绪时调用它:

$(".oneInput").blur(function(){
   //code code and more code
}).blur();

演示:http: //jsfiddle.net/Exw3f/

于 2013-06-26T16:04:30.330 回答
6

将您的代码放入一个单独的函数中以在 document.ready 和模糊触发器上调用它。

例子

function calculateTotals() { ... }

$(document).ready(function() {
    $('.oneInput').each(calculateTotals);
}):

$('.oneInput').blur(calculateTotals);
于 2013-06-26T16:05:24.127 回答