【问题标题】:Sum of dynamic input fields? jQuery动态输入字段的总和? jQuery
【发布时间】:2013-10-31 19:17:22
【问题描述】:

我正在研究一种使用乘法和加法进行计算的表格,但我似乎无法让这些部分正确地组合在一起......

http://jsfiddle.net/cSfYE/

$('.qty').on('keyup', function() {
var sum = 0;
$("tbody tr").each(function(i,o){
    total = parseInt($(o).find(".qty").val(), 10) * parseInt($(o).find(".price-integer").val(), 10);
    if(!isNaN(total) && total.length!=0) {
        $(o).find(".install-total").val(total);
        sum += total;
    }
});
$("#total-equipment").val(sum);
});

当用户在第一列输入一个数量时,比如 2,应该乘以第四列中的数字 (3,000) 并输出到 Install Total 列。

然后需要将 Install Total 列中的所有数字相加并输出到 Total Equipment Cost 输入字段中。

最后,+ 安装 数字需要加起来。

所有这一切都必须在用户输入一个数量之后发生,这部分是有效的。耶。


我似乎无法正确使用语法或其他东西!在过去的几天里,我一直在查看 stackoverlow.com 的帖子,但没有任何效果,所以我希望有人可以给我一根骨头并帮助我。我真的很感激你的时间。

【问题讨论】:

  • $(o).find(".qty").val() 是一个问题, td 没有值。试试$(o).find("input.qty").val()。当你得到价格时,你犯了同样的错误。

标签: jquery sum live multiplication


【解决方案1】:

行内的选择器出现问题。您引用的是 <td> 类,而不是其中的输入

这可行,但也可以考虑将类添加到输入中

 total = parseInt($(o).find(".qty input").val(), 10) * parseInt($(o).find(".price-integer input").val(), 10);

DEMO Updated

编辑:附加说明 - 删除了长度测试,因为整数没有长度

【讨论】:

  • 谢谢!对此,我真的非常感激。它工作得很好。还有一件事——我正试图让 + 安装部分工作。我更新了 JS Fiddle:jsfiddle.net/cSfYE/1 因此,如果在前三个字段中填写了数量,则将安装成本(这是一个隐藏的输入字段)相加。我认为我所做的是对的,但它不起作用。想法?
  • 没有看到任何隐藏字段...它在哪里?还有为什么你不能把它添加到if( !isNaN)
  • 嗨 Charlietfl,对不起,我刚刚添加了它。 jsfiddle.net/cSfYE/3
  • 您好 Charlietfl,这是按单元安装的。我想这将是与第一个相同的代码,但我不知道把它放在哪里? “sum”是我可以更改名称的变量吗?
  • 一个简单的if 看看是否安装在行if($(o).find(".installation-quote').length) 然后做数学并添加到总数
猜你喜欢
  • 2013-06-02
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多