用文本输入进行计算

时间:2014-01-29 03:41:58

标签: javascript function if-statement

我正在尝试创建一个表单,允许用户输入值,然后对该值执行计算,然后将结果显示在警告框中。我似乎无法弄清问题是什么。任何帮助,将不胜感激。

<!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>

2 个答案:

答案 0 :(得分:1)

  1. 想要关闭支架。
  2. 错过了添加.
  3. documentGetById错误将其替换为document.getElementById
  4. 无法关闭}方法AddShipping

  5. var PurchasePrice = documentGetById('TextInput'.value;
    

    将其更正为

    var PurchasePrice = document.getElementById('TextInput').value;
    

    清除这些错误后,现在它正在fiddle

    中运行

    仅供参考:由于文本框仅处理数值,我建议您使用Javascript使用HTML5 number input typeRestricting 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
    

    jsfiddle

答案 1 :(得分:0)

您的代码存在一些问题。

  1. 您应该按}关闭您的功能。
  2. var PurchasePrice = documentGetById('TextInput'.value;更改为 varPurchasePrice = document.getElementById('TextInput').value;
  3. var FinalPrice = PurchasePrice + Shipping;更改为var FinalPrice = parseFloat(PurchasePrice) + Shipping,PurchasePrice为 一个字符串,因为它是从输入返回的,所以你需要转换 它是一个数字。
  4. 您需要将alert ('FinalPrice');更改为alert(FinalPrice); 警告变量不是字符串。