Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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计算总数_Javascript_Forms - Fatal编程技术网

使用javascript计算总数

使用javascript计算总数,javascript,forms,Javascript,Forms,我在HTML中使用了一些输入字段,用户可以在这些字段中键入一个数字,价格将根据输入的数字自动更新: <td>Pizza Margherita</td> <td><input type="number" id="countMargherita" class="orderform" name="PizzaMargherita" onkeyup="validateForm(this)" min="1"></td> <td><

我在HTML中使用了一些输入字段,用户可以在这些字段中键入一个数字,价格将根据输入的数字自动更新:

<td>Pizza Margherita</td>
<td><input type="number" id="countMargherita" class="orderform" name="PizzaMargherita" onkeyup="validateForm(this)" min="1"></td>
<td><span id="totalMargherita"></span></td>
现在我有11个像这样的字段,它们都工作得很好,但现在我想做一个总的价格。因此,一个将所有这些价格计算在一起并将其放入

<td><h3>Totale Prijs</h3></td>
<td></td>
<td><span id="TotalPrice"></span></td>
Totale Prijs
但是由于我在JS方面没有任何经验,所以我在完成这项工作时遇到了很多困难


非常感谢您的帮助。

您可以使用
getElementsByClassName()
而不是
getElementById()
来处理每个元素

也许下面的内容并不完全符合您的需要,但您可能会很容易地进行调整

// create a price object with all pizzas prices
var prices = {
  PizzaMargherita : 7,
  PizzaHawai : 42
}
// get all inputs which contains number of pizzas. 
// Maybe you will add something else than "order form"
function recalculate()
{
  var all_inputs = document.getElementsByClassName('orderform');
  var total = 0;
  for(i=0;i<all_inputs.length;i++)
  {
    var that_input = all_inputs[i]
    var subtotal = parseInt(that_input.value * prices[that_input.name]);
    total += subtotal
    document.getElementById('totalMargherita').innerHTML = subtotal;
  }
  document.getElementById('totalPrice').innerHTML = total;
}
// add your listener in each inputs
var all_inputs = document.getElementsByClassName('orderform');
for(i=0;i<all_inputs.length;i++)
  all_inputs[i].addEventListener('change',function(e){recalculate(); }, false);
//创建一个包含所有比萨饼价格的价格对象
风险价值价格={
玛格丽塔比萨饼:7,
比萨哈维:42
}
//获取包含比萨饼数量的所有输入。
//也许您可以添加“订单”以外的内容
函数重新计算()
{
var all_inputs=document.getElementsByClassName('orderform');
var合计=0;

对于(i=0;这是玛格丽塔披萨,不是“马加里塔”…哈哈,我知道,当我把它放在这里的时候,我注意到了。给所有跨度一个类,在这个函数中有total,在numpizzamagaritainputchange上迭代每个类,把所有跨度的值加起来,把最后的总数加进去。我希望你能有个想法。我知道应该怎么做,但正如我说的,我完全没有经验th JS,我对它的布局不太熟悉。=/我所有的跨度都已经有了ID,因为它已经将所有的单独总计放在了这些跨度中
// create a price object with all pizzas prices
var prices = {
  PizzaMargherita : 7,
  PizzaHawai : 42
}
// get all inputs which contains number of pizzas. 
// Maybe you will add something else than "order form"
function recalculate()
{
  var all_inputs = document.getElementsByClassName('orderform');
  var total = 0;
  for(i=0;i<all_inputs.length;i++)
  {
    var that_input = all_inputs[i]
    var subtotal = parseInt(that_input.value * prices[that_input.name]);
    total += subtotal
    document.getElementById('totalMargherita').innerHTML = subtotal;
  }
  document.getElementById('totalPrice').innerHTML = total;
}
// add your listener in each inputs
var all_inputs = document.getElementsByClassName('orderform');
for(i=0;i<all_inputs.length;i++)
  all_inputs[i].addEventListener('change',function(e){recalculate(); }, false);