JavaScript计算错误
JavaScript Calculating wrong
我正在尝试使用JavaScript执行计算。当用户在输入(#page)中输入的页面少于10页时,成本为1。如果他加了10个以上,每一页的费用是.10。有两个复选框选项,如果他点击,则添加第一个复选框10和第二个复选框15。
当按顺序步骤完成时,这是有效的。(输入,然后单击复选框)。
例如:输入为:9(总计:1)单击复选框1-重复项(总数:11)点击复选框1-激光(总数:26)
现在,如果我将Input更改为11,那么总数将变为1.10——即使两个复选框都被选中。。(预期结果应为-26.10)
我不知道该怎么做。。。有人能帮我解决吗
<html>
<head>
<title>Calculation</title>
<script>
function calculate() {
var pages=document.getElementById("page").value;
if(pages <=10) {
total.value=1;
}
if(pages >= 11) {
var extra_pages= pages - 10;
var new_total= extra_pages * .10;
var new_total1= 1 + new_total;
total.value= new_total1;
}
}
function checkbox1() {
if(document.getElementById("ckbox1").checked === true) {
var total1=document.getElementById("total").value;
const add1 = 10;
var check1 = +total1 + +add1;
total.value=check1;
}
if(document.getElementById("ckbox1").checked === false) {
var total1=document.getElementById("total").value;
const sub1 = 10;
var check2 = +total1 - +sub1;
total.value = check2;
}
}
function checkbox2() {
if(document.getElementById("ckbox2").checked === true) {
var total1=document.getElementById("total").value;
const add1 = 15;
var check1 = +total1 + +add1;
total.value=check1;
}
if(document.getElementById("ckbox2").checked === false) {
var total1=document.getElementById("total").value;
const sub1 = 15;
var check2 = +total1 - +sub1;
total.value = check2;
}
}
</script>
<body>
Enter a Number: <input type="text" id="page" value="1" oninput="calculate()">
<br>
<br><br><br><br>
duplicates <input type="checkbox" id="ckbox1" onclick="checkbox1()">
laser print: <input type="checkbox" id="ckbox2" onclick="checkbox2()"> <br><br>
Total: <input type="text" id="total">
</body>
</html>
您可以对所有更改使用calculate
,而不是为每个input
创建每个更改,这会使计算变得复杂。
// Get reference to inputs.
var page = document.getElementById("page");
var total = document.getElementById("total");
var dup = document.getElementById("ckbox1");
var laser = document.getElementById("ckbox2");
function calculate() {
// To Number
var pages = parseInt(page.value, 10);
var value = 0;
if (pages <= 10) {
value = 1;
} else {
var extra_pages = pages - 10;
var new_total = extra_pages * .10;
var new_total1 = 1 + new_total;
value = new_total1;
}
// Add 10 if dup is checked.
if (dup.checked) {
value += 10;
}
// Add 15 if laser is checked.
// These can be moved out like
// const laserVal = 15;
// value += laserVal if you don't want magic number here.
if (laser.checked) {
value += 15;
}
// Truncate float.
total.value = value.toFixed(1);
}
Enter a Number:
<input type="text" id="page" value="1" oninput="calculate()">
<br>
<br>
<br>
<br>
<br>
duplicates:<input type="checkbox" id="ckbox1" onclick="calculate()">
laser print:<input type="checkbox" id="ckbox2" onclick="calculate()">
<br>
<br>Total:
<input type="text" id="total">
相关文章:
- 与域在同一台计算机上运行的NODEJS服务器的CORS错误
- 猫头鹰旋转木马宽度计算错误
- 百分比计算错误
- 浏览器错误的javascript浮点计算
- jQuery - 带有一些数字的表格计算出现奇怪的舍入错误
- JavaScript 运行时错误仅在本地计算机上
- 我的代码中有什么错误?计算最多 n 的素数
- 计算当天和另一个日期之间的差额时出现错误差异
- 在带有时间戳的日期之间计算时出现 NaN JavaScript 错误
- Javascript/Html 未捕获的引用错误:赋值中的左侧无效;未捕获的引用错误:未定义计算
- Javascript:错误的日期计算
- 为什么使用CryptoJS的哈希计算会在Angular中导致$rootScope:infdig错误
- 谷歌浏览器错误地计算了元素的高度
- JavaScript 在两个输入中计算错误的百分比
- 未捕获的引用错误: 未定义计算总计
- JS脚本计算金额的总和计算错误
- 如何在 JavaScript 对象中计算父级(获取未定义错误)
- 在不同计算机上执行时未捕获的引用错误
- 计算两个日期之间的差异会导致错误的计算
- 错误 404,在我的计算机上找不到脚本