使用jQuery对几个文本输入中的值求和

时间:2011-12-17 18:44:15

标签: javascript jquery forms

我有几个文本输入,我想计算另一个输入值的总和。只要用户在其中一个输入中输入值,就必须立即执行此操作。我打算为此使用jQuery,我想为每个输入添加一个类名,比如class =“input1”,class =“input2”等等。

我的问题是我不知道要添加所有这些值,并且鉴于我有超过50个输入,我不想“手动添加它们”。

感谢任何形式的帮助。

2 个答案:

答案 0 :(得分:4)

如果您将要添加的所有输入与input1input2等类一起添加,这将获得所有这些输入中当前值的总和

var sum = 0;

$("input[class *= 'input']").each(function(){
    sum += +$(this).val();
});

然后自然如果你想把这个值放在id destination

的输入中
$("#destination").val(sum);

这是fiddle

修改

如果您希望在更改任何的任何文本框时运行,那么您可以将其置于更改事件处理程序中

$(document).on("change", "input[class *= 'input']", function() {
    var sum = 0;

    $("input[class *= 'input']").each(function(){
        sum += +$(this).val();
    });

    $("#destination").val(sum);
});

这是fiddle

修改

根据雅斯贝斯的评论,如果您知道input1input2等,始终将成为您输入的第一个类,即您从不

<input class='someNewClass input1'

然后你可以

$("input[class ^= 'input']").each(function(){

^=表示开头,而*=表示包含任意位置。

答案 1 :(得分:1)

给他们一个通用名称,你需要解析这个值,因为它最初是文本

var result= 0;

$("input[name='sum']").each(function(){
    result = result + parseInt($(this).val(),10);
});