Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JS/jQuery从表单字段获取值的总和_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用JS/jQuery从表单字段获取值的总和

Javascript 使用JS/jQuery从表单字段获取值的总和,javascript,jquery,html,Javascript,Jquery,Html,我有一个动态的表单,比如: <form id="formaa"> <div class="row"> <input type="text" name="item" class="item"></input> <input type="text" name="quant" class="quant"></input> <input type="text" name="price" class="price"

我有一个动态的表单,比如:

<form id="formaa">
<div class="row">
  <input type="text" name="item" class="item"></input>
  <input type="text" name="quant" class="quant"></input>
  <input type="text" name="price" class="price" onkeyup="update();"></input>
  <input type="text" name="sum" id="suma" size="10" disabled="disabled"/>
</div>
<div class="row">
  <input type="text" name="item" class="item"></input>
  <input type="text" name="quant" class="quant"></input>
  <input type="text" name="price" class="price" onkeyup="update();"></input>
  <input type="text" name="sum" id="suma" size="10" disabled="disabled"/>
</div>    
<!-- ... many more rows -->
<input type="text" disabled id="total" name="tot"></input>
</form>

我想做的是将商品数量和价格相乘,分别在总和字段中得到每个商品的总和(不是所有商品的总和)

我实现的是这个函数,但它似乎不单独地计算所有项的总和,这与第一个默认字段行一起工作,当我添加一组新字段并用这两个字段的信息填充它们时,字段(以及后来添加的其他字段)和值变为NaN。如果我删除所有添加的字段集并保留第一个表单fows集,电话又接通了。。这里有什么问题

<script type="text/javascript">
function update() {
  var total = 0;
  $("#formaa div.row").each(function(i,o){
    total += $(o).find(".quant").val() *
        $(o).find(".price").val();
         if(!isNaN(total) && total.length!=0) {
                sum += parseFloat(total);
            }
  });
  $("#formaa div.row #suma").val(total);
}
</script>

函数更新(){
var合计=0;
$(“格式分区行”)。每个(功能(i,o){
总计+=$(o).find(“.quant”).val()*
$(o).find(“.price”).val();
如果(!isNaN(总计)&&total.length!=0){
总和+=浮点数(总计);
}
});
美元(合计);
}
代码中的一些问题:

  • 切勿将同一id赋予多个元素。这就是我在名称上定义选择器的原因
  • 你没有重置总数,所以它是所有的总和
  • 我没有解决这个问题,但是您在浮点解析之前的操作很奇怪(这可能取决于我看不到的内容)
代码中的一些问题:

  • 切勿将同一id赋予多个元素。这就是我在名称上定义选择器的原因
  • 你没有重置总数,所以它是所有的总和
  • 我没有解决这个问题,但是您在浮点解析之前的操作很奇怪(这可能取决于我看不到的内容)

+1,和我一样。。。快一点。jsFiddle对于任何感兴趣的人>>@Ben Everard您的代码也很好,它在jsFiddle上运行良好,但是当我将其添加到我的页面时,它只显示总值,总和字段为空。+1,和我一样。。。快一点。JavaDeld:对于任何感兴趣的人> @ Ben Everard,你的代码也很好,它在JSFIDLE上很好,但是当我把它添加到我的页面时,它只显示总值,和字段是空的。考虑使用字段集标签代替一个边注释,这个<代码> $(“yf.FaMAa De.Lo.Sua SUMA”)是毫无意义的,ID只能存在一次,所以不需要限定它。这个
$(“#suma”)
就足够了。@beneverad
$(“#suma”)
不起作用,因为每行都有一个标识为“suma”的元素(这是错误的)。我建议
.find('[name=“sum”]')
@dystroy完全正确,我使用了
[name=sum]
的相同路线,但总的来说,并没有过度限定ID选择器。这是完全正确的。甚至不利于性能。考虑使用FieldStand标签代替一个边注释,这个<代码> $(“yf.FaMAa DeV.Lo.SuMa”)是毫无意义的,ID只能存在一次,所以不需要限定它。这个
$(“#suma”)
就足够了。@beneverad
$(“#suma”)
不起作用,因为每行都有一个标识为“suma”的元素(这是错误的)。我建议
.find('[name=“sum”]')
@dystroy完全正确,我使用了
[name=sum]
的相同路线,但总的来说,并没有过度限定ID选择器。这是完全正确的。这甚至对表演有害。
function update() {
  $("#formaa div.row").each(function(i,o){
     var total = $(o).find(".quant").val() * $(o).find(".price").val();
     if(!isNaN(total) && total.length!=0) {
         sum += parseFloat(total);
     }
     $(o).find('[name="sum"]').val(total);
  });
}