Javascript页面加载总计

时间:2012-03-18 06:37:53

标签: javascript javascript-events joomla

我创建了一个用于计算每月费用的表单。我遇到的问题是在最后一页上我正在从以前的页面(会话到数据)收集信息,这些信息会自动填充最后一页上的字段。我已经创建了一个javascript,假设要在页面上减去总计的五个字段,但这不起作用。如果我从加载部分删除会话数据,javascript工作正常。

问题页面: http://www.garranteedsolutions.com/budget?chronoform=BudgetPage7

使用Javascript:

 window.addEvent('domready', function() {
 $('spendable').addEvent('change', rekenen1);
 $('housetotal').addEvent('change', rekenen1);
 $('cartotal').addEvent('change', rekenen1);
 $('creditortotal').addEvent('change', rekenen1);
 $('misctotal').addEvent('change', rekenen1);
});
function rekenen1(){
$('grandtotal').value = Number($('spendable').value) + Number($('housetotal').value) +   Number($('cartotal').value) + Number($('creditortotal').value) + Number($('misctotal').value) ;
}

这是我一直在使用的代码,但它需要在表单框中进行更改才能执行操作。我试过这个

使用Javascript:

window.addEvent('domready', function() {
rekenen1;
 $('spendable').addEvent(rekenen1);
 $('housetotal').addEvent(rekenen1);
 $('cartotal').addEvent(rekenen1);
 $('creditortotal').addEvent(rekenen1);
 $('misctotal').addEvent(rekenen1);
 });
 function rekenen1(){
 $('grandtotal').value = 
Number($('spendable').value) + Number($('housetotal').value) 
+ Number($('cartotal').value) + Number($('creditortotal').value) 
+ Number($('misctotal').value);
}

这是我从这里开始寻求帮助的延续:http://www.chronoengine.com/forums/viewtopic.php?f=2&t=67427&p=269741#p269741

我不太了解Javascript,而且我已经完成了这个表格。我只是无法让总计达成一致。

2 个答案:

答案 0 :(得分:0)

问题是只有在更改表单的值时才触发事件。形式只读它所以不能改变。

无论如何,这是优化的代码:

window.addEvent('domready', function() {
    var rekenen1 = function(){
        var grandTotal = 0;
        $$('#spendable, #housetotal, #cartotal, #creditortotal, #misctotal').each(function(el){
            if(el.value.length > 0) grandTotal += el.value.toFloat();
        });
        $('grandtotal').value = grandTotal;
    };
    $$('#spendable, #housetotal, #cartotal, #creditortotal, #misctotal').addEvent('onchange', refenen1);
});

那应该有用。该函数检查字段是否具有值,如果有,则它们包含在计算中。

您创建的第二个代码会触发错误,因为您在addEvent函数中缺少一个参数。

我希望这可以帮助你:)

答案 1 :(得分:0)

这似乎有效!所以现在我想弄清楚如何为成千上万的人制作逗号。因此,如果我输入1200则显示1,200。

window.addEvent('domready', function() {
$('grandtotal').value = Number($('spendable').value) + Number($('housetotal').value) + Number($('cartotal').value) + Number($('creditortotal').value) + Number($('misctotal').value);
});

非常感谢你的帮助!