变化的输出标准值?

时间:2018-12-06 18:16:51

标签: javascript html

我有1个输入。我想做的是输入=“ 5”,然后在“ total”处输入“ 3”,在“ total2”处输入“ 4”。对于输入的每+1,对“ total”和“ total2”执行+1。 低于5的值无关紧要,因为我的div输出不会显示是否低​​于5。

简而言之:“当我输入5时,我得到4&5的输出,但我需要3&4。输入之后每+1,我就需要+1。”

这是我到目前为止所拥有的:

function updateTotal() {
  var total = 0; //
  var total2 = 0; //
  var list = document.getElementsByClassName("input");
  var values = [];
  for (var i = 0; i < list.length; ++i) {
    values.push(parseFloat(list[i].value));
  }
  total = values.reduce(function(previousValue, currentValue, index, array) {
    return previousValue + currentValue;
  });
  document.getElementById("total").value = total;
  document.getElementById("total2").value = total - 1;
}
<input type="text" class='input' value="0" onchange='updateTotal();'>
<br>
<br>
<br>
<input name="total" type="text" id="total" value="">
<input name="total2" type="text" id="total2" value="">

但是我似乎无法弄清楚如何给它提供3和4的标准值。

1 个答案:

答案 0 :(得分:0)

只有一个for-loop,我不知道那些reduce<input class='input'>与问题如何相关,但是...... pp

我想做的是输入=“ 5”,然后在“ total”处输入“ 3”,在“ total2”处输入“ 4”。

换句话说,您需要两个输入分别为第一个输入的值的-1和-2。

function updateTotal() {
  // var total = 0; I don't know
  // var total2 = 0; why you wrote those

  // I assume you have multiple <input class="input"> 
  const list = document.getElementsByClassName("input");
  const values = [];
  for (let i = 0; i < list.length; ++i) {
    values.push(parseFloat(list[i].value));
  }
  //and here you accumulate all those values
  let total = values.reduce(function(previousValue, currentValue) {
    return previousValue + currentValue;
  });


  // but code relevant to the problem is DOWN HERE

  // here you assigned INPUT value to TOTAL (eg input==5)
  // document.getElementById("total").value = total; but you need 2 less
  document.getElementById("total").value = total - 2;

  // here you assigned INPUT-1 value to TOTAL (eg input=4)
  // all ok here
  document.getElementById("total2").value = total - 1;
}
<input type="text" class='input' value="0" onchange='updateTotal();' placeholder="input">
<br>
<br>
<br>
<input name="total" type="text" id="total" placeholder="total">
<input name="total2" type="text" id="total2" placeholder="total 2">