昨天我提交了这个问题,得到了极好的回复,但我的代码仍然没有用。我根据另一个学生的代码修改了我的代码,但我的代码仍然无法计算,但它在javascript中验证。有什么建议。这个作业要到了!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4 /loose.dtd">
<html>
<head>
<title>Price Calculator</title>
<script type="text/javascript">
function fixOrder() {
const TAX = 0.975;
var numPrice;
var total;
var tax;
numPrice = parseFloat(document.getElementById("cost").value, 10);
tax = parseFloat(document.getElementById("tax").value, 10);
total = parseFloat(document.getElementById("total").value, 10);
numPrice = numPrice * TAX;
total = numPrice;
total = document.getElementById("total").value = "$" + total.toFixed(2);
if (isNaN(numPrice)) {
alert("Sorry,you must enter a numeric value to place order");
numPrice = 0;
}
}
</script>
</head>
<body bgcolor="#00f3F1">
<h1 align="left">Price Calculator</h1>
<form name="form" id="form">
<p>Price: <input type="text" id="cost" name="cost" value="" onchange=
"fixOrder" /></p>
<p>Tax: <input type="text" id="tax" name="tax" value="" onchange=
"fixOrder" /></p>
<p>Total: <input type="text" id="total" name="total" value="" disabled=
"disabled" /></p>
</form>
</body>
</html>
答案 0 :(得分:2)
您需要将onchange
更改为
fixOrder()
答案 1 :(得分:2)
你的onchange事件是onchange="fixOrder"
,它实际上并没有做任何事情。如果您将其更改为fixOrder()
,则会在触发更改事件时调用函数fixOrder
。
const
是JavaScript中的保留字。我不认为JS有常量。您应该将该行从const TAX
更改为var TAX
; parseInt
不同,parseFloat
采用两个参数(字符串和基数/基数),, 10
只接受一个参数(字符串),因此您可以从中删除function fixOrder() {
var TAX = 0.0975;
var numPrice;
var total;
var tax;
numPrice = parseFloat(document.getElementById("cost").value);
tax = parseFloat(document.getElementById("tax").value);
total = parseFloat(document.getElementById("total").value);
numPrice = numPrice + (tax || numPrice * TAX);
total = numPrice;
var dec = new Number((total+'').split('.')[1]) || 0;
total = document.getElementById("total").value =
"$" + Number(parseInt(total)
+ '.'
+ Math.round(
( (dec+''.split('').reverse().join('') )/100 + '').split('').reverse().join('')
)).toFixed(2);
);
if (isNaN(numPrice)) {
alert("Sorry,you must enter a numeric value to place order");
numPrice = 0;
}
}
我想你想要的东西是:
<h1 align="left">Price Calculator</h1>
<form name="form" id="form">
<p>Price: <input type="text" id="cost" name="cost" value="" onchange="fixOrder()" /></p>
<p>Tax: <input type="text" id="tax" name="tax" value="" onchange="fixOrder()" /></p>
<p>Total: <input type="text" id="total" name="total" value="" disabled="disabled" /></p>
</form>
这将使用您输入的美元税额,或者如果不存在,它将使用您在开头提供的常数费率(从.975更改为.0975)。
另外,请注意总计中的新计算,我们取数字的小数部分,除以100得到两位小数,然后将其反转,使其再次按正确顺序排列,然后将其四舍五入最近的1(分)。
{{1}}
答案 2 :(得分:0)
通过事件在Javascript中调用函数时,需要在要调用的函数名称后面提及()。