我如何从输入中获取值,将其四舍五入到下一个偶数并将其设置为新变量

时间:2018-03-16 16:29:08

标签: javascript html

所以我有两个文本框和一个提供费率的下拉菜单。两个文本框是以英寸为单位的值。我需要将输入作为值,向上舍入到下一个偶数,然后设置为变量。我在下面创建的值不是数字。我能做些什么来实现这一目标?为我的道歉

function calculate() {
  var myBox1 = document.getElementById('box1').value;
  //this takes the
 // values from the inputs, and sets them as a variable
  var myBox2 = document.getElementById('box2').value;
  var myBox3 = document.getElementById('box3').value;
  var result = document.getElementById('result');
  var myBox4 = document.getElementById("myBox1").innerHTML =
    Math.ceil(box1);
  //this line of code
  var myBox5 = document.getElementById("myBox2").innerHTML =
    Math.ceil(box2);
 // and this one, I cannot figure out how to combine given
  //nature above
  var myResult = ((myBox4 * myBox5) / 144) * myBox3;
  result.value = myResult;
  }
<td><input id="box1" type="text" oninput="calculate()" /></td>
<td><input id="box2" type="text" oninput="calculate()" /></td>
<td> <select id="box3" oninput="calculate()">
    <option value="8">Clear</option>
    <option value="7">Satin Etched</option>
    <option value="6">Aqualite</option>
    <option value="5">Spraylite</option>
    </select></td>

2 个答案:

答案 0 :(得分:1)

一步一步,你想要:

  1. 从DOM获取值1,向上舍入。
  2. 从DOM中获取值2,向上舍入。
  3. 将两个值加在一起。
  4. 在DOM中的元素中设置结果值。
  5. 以下是您可以做的事情:

    function calculate() {
     var value1 = Math.ceil(document.getElementById('box1').value);
     var value2 = Math.ceil(document.getElementById('box2').value);
     var addedValues = value1 + value2;
     document.getElementById('result').innerHTML = addedValues;
    }
    

    使用此代码,您必须有两个输入,id="box1"id="box2",并且您还必须有一个id="result"元素来显示结果。

答案 1 :(得分:1)

我已删除了<td>,因为您还没有提供他们所在的表格。

但是,您还需要result的HTML元素。

一旦从HTML元素中获取值并将其放在变量中,就可以使用该变量 - 无需再从元素中获取值。 因此,不需要myBox4myBox5

您尝试从页面中获取HTML元素myBox1myBox2,但它们是您在javascript中声明的变量。 您还尝试获取Math.ceil()box1的{​​{1}} - 但这些是HTML元素的box2 - 而不是javascript变量。

在计算中不需要括号,因为在乘法和除法时,优先顺序不起作用。

所以你想要的工作原型是:

id