输出不会显示(javascript)

时间:2018-12-07 09:32:26

标签: javascript html

我有1个输入。而且它必须将2的输出-1(带有-1)打印到输出,另一个输出为-2。但是输出未显示任何内容。有人可以告诉我我在做什么错。

代码:

// Meters en Centimeters value
function updateTotal() {
  const list = document.getElementsByClassName("AutosubmitCalculator");
  const values = [];
  for (let i = 0; i < list.length; ++i) {
    values.push(parseFloat(list[i].value));
  }
  let total = values.reduce(function(previousValue, currentValue) {
    return previousValue + currentValue;
  });
  document.getElementById("schermentotaal").value = total - 2;
  document.getElementById("schermentotaal2").value = total - 1;
}

HTML输入:

<div class="InputField InputMeters">
    <input type="tel" name="iFenceMeters" id="FenceMeters" class="AutosubmitCalculator" data-minimum-length="1" tabindex="1" placeholder="00" maxlength="3" value="">
    <div class="FormExclamation Tipped Hidden" id="FormCalculatorExclamationFence">0</div>
</div>

HTML输出:

<div class="SummaryRow">
  <strong>Schermen</strong>
  <input name="schermentotaal" type="text" id="schermentotaal" value=""></input>
</div>

<div class="SummaryRow">
  <strong>Palen en onderplaten</strong>
  <input name="schermentotaal2" type="text" id="schermentotaal2" value=""></input>
</div>

预先感谢:D

1 个答案:

答案 0 :(得分:2)

您不会在任何地方致电updateTotal。建议您在输入字段的oninput事件上运行此功能。这样可以使您在每次输入数字时都可以运行函数updateTotal

您还会遇到一些其他错误,例如,您尝试获取ID为total的元素,但在HTML中没有与此id相同的元素。

document.getElementById("total").value

我将其更改为schermentotaal2,这在您的HTML中是有效的id

document.getElementById("schermentotaal2").value

请参见下面的工作示例:

function updateTotal() {
  const list = document.getElementsByClassName("AutosubmitCalculator");
  const values = [];
  for (let i = 0; i < list.length; i++) {
    values.push(parseFloat(list[i].value));
  }
  let total = values.reduce(function(previousValue, currentValue) {
    return previousValue + currentValue;
  });
  document.getElementById("schermentotaal").value = (total - 2) || '';
  document.getElementById("schermentotaal2").value = (total - 1) || '';
}
<div class="InputField InputMeters">
  <input type="tel" name="iFenceMeters" id="FenceMeters" class="AutosubmitCalculator" data-minimum-length="1" tabindex="1" placeholder="00" maxlength="3" value="" oninput="updateTotal()" />
  <div class="FormExclamation Tipped Hidden" id="FormCalculatorExclamationFence">0</div>
</div>


<div class="SummaryRow">
  <strong>Schermen</strong>
  <input name="schermentotaal" type="text" id="schermentotaal" value="" />
</div>

<div class="SummaryRow">
  <strong>Palen en onderplaten</strong>
  <input name="schermentotaal2" type="text" id="schermentotaal2" value="" />
</div>

此外,如果您只有一个输入,则可能需要重新考虑使用一个类来获取该输入值,因为您不需要循环就可以从一个输入字段中获取值。