计算表格输入并在屏幕上显示

时间:2011-07-05 04:54:53

标签: jquery

我已经计算了两个日期字段,因为我需要时间。除了这些,我有6个下拉列表,其中包含数值。

当用户选择这些字段中的任何一个时,我希望在屏幕上计算/更新总数,类似于购物车。 我从这样的事情开始,但我不能让血腥的东西工作,显然我的逻辑是错的。我意识到这是错的,但我不知道如何解决它。

$(function(){
$('a#calc').click(function(){
var p = $('select#TRDO').val();
var q = $('select#AnnualLeave').val();
var r = $('select#PersonalLeave').val();
var s = $('select#WorkFromHome').val();
var t = $('select#TOIL').val();
var tot = (q+p+r+s+t);
$('input#total').val(tot);
});

});

我只需要帮助做第一个,然后我会自己去做它。

谢谢,这是一个非常令人沮丧的一天......

4 个答案:

答案 0 :(得分:2)

您可以尝试使用parseInt进行数字添加:

$(function(){
  $('a#calc').click(function(){
     var p = parseInt($('select#TRDO').val(), 10);
     var q = parseInt($('select#AnnualLeave').val(), 10);
     var r = parseInt($('select#PersonalLeave').val(), 10);
     var s = parseInt($('select#WorkFromHome').val(), 10);
     var t = parseInt($('select#TOIL').val(), 10);
     var tot = (q+p+r+s+t);
     $('input#total').val(tot);
  });
});

如果没有parseInt(),则加号运算符(+)将连接字符串而不是添加其数值。

希望这会有所帮助。干杯

答案 1 :(得分:1)

为你想要总计的所有输入添加一个类并使用parseInt ...哦,你很可能不想使用.click你可能想要.change

<input class="inputsToSum" value="4"/>

var runningTotal = 0;
$(".inputsToSum").change(function() {
    runningTotal += parseInt($(this).val(), 10);
});
$('input#total').val(runningTotal);

答案 2 :(得分:0)

$(function(){
$('a #calc').click(function(){
var p = $('#TRDO option:selected').val();
var q = $('#AnnualLeave option:selected').val();
var r = $('#PersonalLeave option:selected').val();
var s = $('#WorkFromHome option:selected').val();
var t = $('#TOIL option:selected').val();
var tot = (parseInt(q)+parseInt(p)+parseInt(r)+parseInt(s)+parseInt(t));
$('input #total').val(tot);
});

更新

此代码在点击计算

时有效
$(function() {
     $('a #calc').click(function(){

        var p = parseFloat($('select[name=TRDO] option:selected').val());
        var q = parseFloat($('select[name=AnnualLeave] option:selected').val());
        var r = parseFloat($('select[name=PersonalLeave] option:selected').val());
        var s = parseFloat($('select[name=WorkFromHome] option:selected').val());
        var t = parseFloat($('select[name=TOIL] option:selected').val());

        var tot = (q + p + r + s + t);
         $('input#total').val(tot);

    });
});

答案 3 :(得分:0)

你只需将其解析为整数或浮点数......

$(function(){
$('a#calc').click(function(){
var p = $('select#TRDO').val();
var q = $('select#AnnualLeave').val();
var r = $('select#PersonalLeave').val();
var s = $('select#WorkFromHome').val();
var t = $('select#TOIL').val();
var tot = (parseInt(q)+parseInt(p)+parseInt(r)+parseInt(s)+parseInt(t));
$('input#total').val(tot);
});
});