我的JavaScript程序无效

时间:2013-02-13 10:29:11

标签: javascript html

我的代码遇到了问题。问题内容如下:

  

创建一个可用于计算每加仑英里数的网页。

     
      
  1. 将表单添加到包含四个文本元素的网页:起始里程,结束里程,使用的加仑数和里程数   每加仑。将初始起始值0分配给每个   元素的值属性。

  2.   
  3. 将onchange事件处理程序添加到调用JavaScript函数的起始里程,结束里程和加仑使用的文本框中   命名为calcMPG()。

  4.   
  5. 在文档头的脚本部分中创建calcMPG()函数。在calcMPG()函数中,声明三个变量,   startMiles,endMiles和加仑,并使用初始化每个变量   分配给起始里程,结束里程和的值   加仑。

  6.   
  7. 创建一个if。 。 。 else语句,在复合条件表达式中使用isNaN()函数来确定是否   startMiles,endMiles和加仑变量包含数值。

  8.   
  9. 如果变量不包含数字变量,则显示警告对话框,通知用户他或她必须输入数字   值。如果变量确实包含数值,则使用else子句   应该执行每加仑英里计算并分配结果   表格中的Miles per Gallon文本框。

  10.   
  11. 计算每加仑英里数的公式是(ending_mileage - 起始里程数)/加仑数*

  12.   

这就是我所得到的,但它不起作用:

<script type="text/javascript">
function calcMPG(){
   var startMiles = document.economy.startMilage.value;
   var endMiles = document.economy.endMilage.value;
   var gallons = document.economy.galonsUsed.value;


   if (isNaN(startMiles) = false)   
   {
      window.alert("You can only enter numbers") 
   }        }
   else 
   {
      document.mpg = document.write((endMiles - startMiles) / gallons) 
   }

}
</script>

<form name="economy">
<p>Starting Milages
<input type="text" name="starMilage" class="input" onchange="calcMPG()" /></p>
<p>Ending Milages
<input type="text" name="endMilage" class="input" onchange="calcMPG()" /></p>
<p>Galons Used
<input type="text" name="galonsUsed" class="input" onchange="calcMPG()" /></p>
<p>Miles Per Galon
<input type="text" name="mpg" class="input" /></p>
</form>

4 个答案:

答案 0 :(得分:1)

if (isNaN(startMiles) = false)替换为if (isNaN(startMiles))

}

之后删除else
<script type="text/javascript">
function calcMPG(){
   var startMiles = document.economy.startMilage.value;
   var endMiles = document.economy.endMilage.value;
   var gallons = document.economy.galonsUsed.value;

   if (isNaN(startMiles))   
   {
      window.alert("You can only enter numbers") 
   }      
   else 
   {
      document.mpg = document.write((endMiles - startMiles) / gallons) 
   }
}
</script>

答案 1 :(得分:0)

你不需要这样做:

if (isNaN(startMiles) = false)

isNaN根据条件返回true或false。

if(isNaN(startMiles))   is enough.

答案 2 :(得分:0)

应该是:

}之前移除else,并在; alert 之后放置document.write

<script type="text/javascript">
function calcMPG(){
   var startMiles = document.economy.startMilage.value;
   var endMiles = document.economy.endMilage.value;
   var gallons = document.economy.galonsUsed.value;

   if (isNaN(startMiles))   
   {
       window.alert("You can only enter numbers");
   }       
   else 
   {
       document.mpg = document.write((endMiles - startMiles) / gallons);
   }
}
</script>

答案 3 :(得分:0)

  1. 如果您使用的是Firefox,请安装 FireBug https://addons.mozilla.org/es/firefox/addon/firebug/
    如果您喜欢镀铬,则无需安装任何东西。
  2. F12 (感谢@Christoph)
  3. 查看控制台:您会看到很多错误。请先解决它们,因为我们不是为你编译代码的。