jQuery绑定文本字段(小时估计)以增加值的总和

时间:2013-04-03 14:09:33

标签: jquery

我有一个项目,我有一个工作估算表单,其中有几个“文本”输入字段需要总计,而总数则反映在最后一个字段中,例如id =“estimateTotal”的文本字段,例如

使用jQuery有一种简单的方法吗?

我希望每次在其中一个估算字段中输入或更改值时,estimateTotal字段都会更新。

例如,我有这个html:

<div class="field-group">
    <input class="text long-field" name="customfield_1" type="text" value="" placeholder="Hrs to prep">
    <input class="text long-field" name="customfield_2" type="text" value="" placeholder="Hrs to design">
    <input class="text long-field" name="customfield_3" type="text" value="" placeholder="Hrs to code">
    <input class="text long-field" name="estimateTotal" id="estimateTotal" type="text" value="" placeholder="Total Hrs">
</div>

我需要将所有不是总小时字段的文本字段的值合计到“estimateTotal”字段中。

我确信使用jQuery可能有十几种方法可以做到这一点,只是寻找一些建议的方法。

2 个答案:

答案 0 :(得分:0)

这样的事情应该足够了:

var totalField = $('#estimateTotal');

$('.field-group').children('input:not(:last)').on('keyup', function(e) {
    var total = 0;
    $(this).parent().children('input:not(:last)').each(function() {  
        total+= (isNaN(parseFloat($(this).val()))) ? 0 : parseFloat($(this).val());
    });
    totalField.val(total);
});

这是jsFiddle demo

答案 1 :(得分:0)

你可以尝试

var sum=0;
$(".field-group input").on("keyup",function(e){
$(".field-group").find("input :not([id='estimateTotal'])").each({
         sum += parseInt($(this).text());
    });
});
$("#estimateTotal").val(sum);