我的代码遇到了问题。问题内容如下:
创建一个可用于计算每加仑英里数的网页。
将表单添加到包含四个文本元素的网页:起始里程,结束里程,使用的加仑数和里程数 每加仑。将初始起始值0分配给每个 元素的值属性。
将onchange事件处理程序添加到调用JavaScript函数的起始里程,结束里程和加仑使用的文本框中 命名为calcMPG()。
在文档头的脚本部分中创建calcMPG()函数。在calcMPG()函数中,声明三个变量, startMiles,endMiles和加仑,并使用初始化每个变量 分配给起始里程,结束里程和的值 加仑。
创建一个if。 。 。 else语句,在复合条件表达式中使用isNaN()函数来确定是否 startMiles,endMiles和加仑变量包含数值。
如果变量不包含数字变量,则显示警告对话框,通知用户他或她必须输入数字 值。如果变量确实包含数值,则使用else子句 应该执行每加仑英里计算并分配结果 表格中的Miles per Gallon文本框。
- 醇>
计算每加仑英里数的公式是(ending_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>
答案 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)
F12
(感谢@Christoph)