所以我有两个文本框和一个提供费率的下拉菜单。这两个文本框是以英寸给出的值。我需要将输入作为值,四舍五入到下一个偶数,然后设置为变量。我在下面创建的值不是数字。我该怎么做才能实现这一点?为我的事道歉
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 元素中获取值并将其放入变量中,您就可以从那时起使用该变量 - 无需再次从该元素中获取值。
所以不需要 myBox4
和 myBox5
.
您试图获取 HTML 元素 myBox1
和 myBox2
来自页面,但它们是您在上面用 javascript 声明的变量。
您还试图获得 Math.ceil()
对于 box1
和 box2
- 但这些是 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/