更新3
James,MondayTotal,是一个span标签中的Class,比如,
<span class="TimebreakdownTotalWeek">Mon</span>
<span class="MondayTotal">0</span>
更新2
这是加载整周,周一到周日的功能,并给出总计。我试过,这个函数将'.totalhours'类改为我的mondaytotal,然后将每周的总数加载到该var中。接下来我在我的+ Count之前添加'Monday',这似乎只是将星期一的当前行添加到我的mondaytotal类中。
例如,我有三行'.Monday0','。Monday1'和'.Monday2'。我的星期一总计将保留总值,但是当您输入下一个值时会覆盖它。所以我输入1到Monday0,MondayTotal然后是1但是当你输入2进入Monday1而不是MondayTotal是3时,它只是覆盖它并且现在保持2 - 所以基本上它不会将行添加到一起。
我认为这是应该的(至少我看到它的方式,如果我错了请纠正我),每次它重置为0并且不能正确循环时它是'索引'。
var LoadHourTotals = function(Count) {
if (typeof Count === "undefined" ) {
var $total = $('.TotalHours');
var $value = $('.Input');
} else {
var $total = $('.'+Count);
var $value = $('.'+Count);
}
$value.on('input', function (e) {
var total = 0;
$value.each(function (index, elem) {
if (!Number.isNaN(parseFloat(this.value, 10))) total = total + parseFloat(this.value, 10);
});
$total.html(total);
});
} //End
更新
詹姆斯,你的意思是我输入的html表单?如果是这样,它并不容易,它是使用CakePHP表单助手构建的,但是有代码,<input name="data[0][maintime]" class="TimebreakdownInput Monday0" type="text">
然后当用户点击加载另一个表单元素时,它将添加
<input name="data[1][maintime]" class="TimebreakdownInput Monday1" type="text">
接下来,例如,
<input name="data[2][maintime]" class="TimebreakdownInput Monday3" type="text">
其他所有日子都一样。如果那不是您所要求的,请解释更多您需要的内容,
感谢。
我正在处理一个表单,该表单会添加一周输入的总数,每周总计。我在这里的帖子上找到了一个函数,只需要做一些修改就可以完成整周我想做的事情。
但是现在我正在努力将所有的日子加在一起,所以我在所有星期一,星期二等都有一个总计,而且整个星期都有一个总计(但我还没有那个工作)。
var LoadDailyTotal = function(Count) {
var $WeekTotal = $('.MondayTotal');
if (typeof Count === "undefined" ) {
var $WeekValue = $('.Monday0');
} else {
var $WeekValue = $('.Monday'+Count);
}
$WeekValue.on('input', function(e) {
var totalweek = 0;
var currentTotal = parseFloat ($('.MondayTotal').html() );
$WeekValue.each(function (index, elem) {
if (!Number.isNaN(parseFloat(this.value, 10))) totalweek = totalweek + parseFloat(this.value, 10);
});
$WeekTotal.html(currentTotal + totalweek);
});
}
现在,这种作品,但我不认为循环是正常的。一个加载的defult行,你输入(例如)1,然后添加新的AJAX加载行,并说你输入2,总共得3。但是如果你把第一行更新为2,它应该是4但我得到5,所以它保持总数,这是我不想要的。我需要的是更新每行的总数,用户是否以及何时更改。
很抱歉,如果我没有正确解释自己,请给我一个更改,以便更好地解释,如果需要或者您想要更多代码。
谢谢,
答案 0 :(得分:2)
如果您每天都添加了一个课程,那么您可以选择所有星期一,然后将其值相加。
<input name="data[0][maintime]" class="TimebreakdownInput Monday0 Monday" type="text">
<input name="data[1][maintime]" class="TimebreakdownInput Monday1 Monday" type="text">
<input name="data[2][maintime]" class="TimebreakdownInput Monday2 Monday" type="text">
var getDayTotal = function(day){
var days=$('.'+day);
var total =0;
days.each(function(){
total+=parseFloat(this.value, 10);
});
return total;
}
$('.mondayTotal').html(getDayTotal('monday'));
答案 1 :(得分:0)
这是我使用的功能,它让它工作,我是的,就像Sonicdeadlock说的那样,我通过移除循环来制作所有星期一,同一个类。
var LoadMondayTotals = function() {
$('.TimebreakdownInput').change(function() {
var MondayInputs = []; //Array to store all monday daily inputs
var MondayTotals = 0; //Store Array total for display
$(".Monday").each(function() {
var values = parseFloat( $(this).val() );
if (isNaN(values)) { values = 0; } //Set value to 0 if its not a number
MondayInputs.push(values);
});
$.each(MondayInputs, function() {
MondayTotals += this; //Count though array, add into total
});
$('.MondayTotal').html(MondayTotals); //Display / Add total into HTML
});
} //End of LoadMondayTotals
谢谢
求助