有人可以帮我理解我做错了什么吗?

时间:2013-06-23 17:18:38

标签: javascript

当我点击计算按钮时,我似乎无法获得输出。我知道这是一件很简单的事情,我很想念,但是我整天都在绞尽脑汁,似乎无法正常工作。这是我更新的代码,仍然无效。

 <!DOCTYPE html>
 <html>
 <head>
 <script type="text/javascript">



 function calc(){
 var price = document.getElementById("price");
 var shipping=parseFloat(calc(price));
 var total= price+shipping;
 if (price<=25){
 return 1.5;
 }
 else{
 return price*10/100
 }

 window.alert("Your total price with shipping and handling is $" + price + ".");
 }
 </script>
 </head>
 <body>
 <form name="total" action="">
 Enter your amount:
 <input type="text" name="price" id="price">
 <input type="button"
 value="calculate"
 onclick="calc(document.getElementById("price")">
 </form>

 </body>
 </html>

3 个答案:

答案 0 :(得分:2)

parsefloat更改为parseFloat:JavaScript区分大小写。

同样,您使用on click代替onclick。浏览器无法猜测你的意愿,你必须准确。

另外,你没有给你的表单命名(我想你想把它称为totalprice。但最好的方法是给这个输入一个id并得到这样的值:

<input type="text" name="price" id="price">

...

var price = document.getElementById('price');

答案 1 :(得分:2)

  1. parsefloat应为parseFloat
  2. on click应为onclick
  3. calc返回一个数字,您试图将其返回值称为函数
  4. JavaScript的前三行不在函数内。这意味着
    • 他们正试图访问不存在的元素(永远不会,你没有totalprice元素)
    • 他们试图在用户输入值之前访问元素

答案 2 :(得分:2)

一些问题:

  1. 应该是onclick而不是on click(没有空格)
  2. calc(price)不是函数的名称,只是calc。要调用它,您只需要编写calc(document.totalprice.price.value)
  3. 它是parseFloat(大写F
  4. window.alert位于功能正文之外,因此您只会在开头收到一个提醒,但不会在按下按钮
  5. 同样,您可能也希望将所有其他内容放入函数中,以便在单击按钮时更新。
  6. document.totalprice不存在,因此document.totalprice.price.value无效。
  7. 另请注意,不需要CDATA注释。它们在XHTML(用作XML)中使用,使内容成为XML解析器的纯文本(无需关心特殊字符等)。由于您只有简单(和推荐)的HTML(5)doctype,因此不再需要它了。