我正在尝试创建一个表单,允许用户输入值,然后对该值执行计算,然后将结果显示在警告框中。我似乎无法弄清问题是什么。任何帮助,将不胜感激。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<html>
<head>
<title>CalcShipping</title>
<script type="text/javascript">
function AddShipping(){
var PurchasePrice = documentGetById('TextInput'.value;
var Shipping;
if (PurchasePrice <= 25){
Shipping = 1.5;
}
else{
Shipping = PurchasePrice * 10 / 100;
}
var FinalPrice = PurchasePrice + Shipping;
alert ('FinalPrice');
</script>
</head>
<body>
<p id="FinalPriceParra"></p>
<form> Enter Purchase Price <input type="text" id="TextInput" value=""/><br/>
<input type="button" value="Submit" onclick="AddShipping()";/></form>
</body>
</html>
答案 0 :(得分:1)
.
documentGetById
错误将其替换为document.getElementById }
方法AddShipping
var PurchasePrice = documentGetById('TextInput'.value;
将其更正为
var PurchasePrice = document.getElementById('TextInput').value;
清除这些错误后,现在它正在fiddle
中运行 仅供参考:由于文本框仅处理数值,我建议您使用Javascript使用HTML5 number
input type或Restricting input to textbox: allowing only numbers and decimal point。
这是因为默认情况下,文本框的值为string
所以"10" + 1.5 = 101.5
。要解决此问题,您需要将textbox
值解析为number
,如
var PurchasePrice = +document.getElementById('TextInput').value;
|_________ parses the textbox value as number
答案 1 :(得分:0)
您的代码存在一些问题。
}
关闭您的功能。var PurchasePrice = documentGetById('TextInput'.value;
更改为
varPurchasePrice =
document.getElementById('TextInput').value;
。var FinalPrice = PurchasePrice + Shipping;
更改为var
FinalPrice = parseFloat(PurchasePrice) + Shipping
,PurchasePrice为
一个字符串,因为它是从输入返回的,所以你需要转换
它是一个数字。alert ('FinalPrice');
更改为alert(FinalPrice);
警告变量不是字符串。