我有一个排序矩阵,其中包含类oneInput的输入行,我有一个jquery函数,它触发任何输入的blur事件,并对行和列求和,并将总和插入到适当的位置 - 所有这些都像我打算一样。
我要做的是在页面加载时将所有行和列与初始值相加。我在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中,需要一个数据库。
答案 0 :(得分:7)
只需将.blur()
添加到blur
函数的末尾,它就会在DOM就绪时调用它:
$(".oneInput").blur(function(){
//code code and more code
}).blur();
答案 1 :(得分:2)
将您的代码放入一个单独的函数中,在document.ready上调用它并在模糊触发器上调用它。
function calculateTotals() { ... }
$(document).ready(function() {
$('.oneInput').each(calculateTotals);
}):
$('.oneInput').blur(calculateTotals);