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

标签 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>

最佳答案

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

但是,您还需要一个 HTML 元素来表示 result .

一旦您从 HTML 元素中获取值并将其放入变量中,您就可以从那时起使用该变量 - 无需再次从该元素中获取值。 所以不需要 myBox4myBox5 .

您试图获取 HTML 元素 myBox1myBox2来自页面,但它们是您在上面用 javascript 声明的变量。 您还试图获得 Math.ceil()对于 box1box2 - 但这些是 id s 的 HTML 元素 - 不是 javascript 变量。

计算中不需要括号,因为在乘除法时优先顺序没有影响。

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

<input id="box1" type="text" oninput="calculate()" />
<input id="box2" type="text" oninput="calculate()" />
<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>
<div id="result"></div>

<script>
    function calculate() {
        // Get values from the two inputs, and the dropdown's selected value
        var myBox1 = document.getElementById('box1').value;
        var myBox2 = document.getElementById('box2').value;
        var rate = document.getElementById('box3').value;

        //Get result element
        var result = document.getElementById('result');

        // Get rounded up values
        var roundedValue01 = Math.ceil(myBox1);
        var roundedValue02 = Math.ceil(myBox2);

        if (roundedValue01 % 2 != 0) {
            roundedValue01 += 1;
        }

        if (roundedValue02 % 2 != 0) {
            roundedValue02 += 1;
        }

        //Calculate and display current amount
        var myResult = roundedValue01 * roundedValue02 / 144 * rate;
        result.textContent = myResult;
    }
</script>

关于javascript - 我如何从输入中获取值,将其四舍五入到下一个偶数并将其设置为新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49325507/

相关文章:

javascript - Parsley ajax 发送 post 变量

javascript - 创建具有负值的自定义数字字段

jQuery: $ 未定义

javascript - 从远程域设置 cookie 以进行本地开发

javascript - nodejs(libuv)事件循环是否在一个阶段(队列)中执行所有回调,然后再移动到下一个阶段或以循环方式运行?

javascript - jQuery 不识别标签

javascript - 如何将 'ended' 函数添加到 .animate()

php - 尝试通过php输出我的数据库中最富有的用户

javascript - 如何将 javascript 与 HTML 合并,使表格根据值改变颜色?

javascript - 使用 JavaScript 获取特定日期格式