-4

我的代码有问题。问题如下:

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

  1. 向 Web 页面添加一个包含四个文本元素的表单:起始里程、结束里程、使用的加仑数和每加仑英里数。为每个元素的 value 属性分配初始值 0。

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

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

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

  5. 如果变量不包含数值变量,则显示一个警告对话框,通知用户他或她必须输入数值。如果变量确实包含数值,则 else 子句应执行英里每加仑计算并将结果分配给表单中的每加仑英里数文本框。

  6. 每加仑英里数的计算公式为 (ending_mileage - starting_ mileage) / 加仑*

这是我所拥有的,但它不起作用:

<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

4 回答 4

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>
于 2013-02-13T10:34:23.357 回答
0

你不需要这样做:

if (isNaN(startMiles) = false)

isNaN 根据条件返回真或假。

if(isNaN(startMiles))   is enough.
于 2013-02-13T10:35:03.330 回答
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>
于 2013-02-13T10:37:58.150 回答
0
  1. 如果您使用的是 firefox,请安装FireBughttps
    ://addons.mozilla.org/es/firefox/addon/firebug/如果您更喜欢 chrome,则无需安装任何东西。
  2. F12 (感谢@Christoph)
  3. 看看控制台:你会看到很多错误。请先解决它们,因为我们不是在这里为您编译代码。
于 2013-02-13T10:39:26.043 回答