javascript错误:函数未定义

时间:2022-06-11 18:50:49

I was trying to find the reason why my code doesnt work, and chrome comes back with this eror: Uncaught ReferenceError: calcMPG is not defined... Can someone spot my mistake ?(desperate)

我试图找到我的代码无法正常工作的原因,并且Chrome回复了这个错误:未捕获的ReferenceError:没有定义calcMPG ...有人能发现我的错误吗?(绝望)

<script type="text/javascript">
    function calcMPG() {
        document.calc.startingMileage.value = startMileage;
        document.calc.endingMileage.value = endMileage;
        document.calc.gallonsUsed.value = gallUsed;
        var MPG = (endMileage - startMileage) / gallUsed;
        if (isNAN(startMileage) || isNAN(endMileage) || isNAN(gallUsed)) alert('please type in numbers only!');
        else document.calc.milesPerGalon.value = MPG;
    }
</script>

<form name="calc">Starting mileage:
    <input type="text" value="0" name="startingMileage" onchange="calcMPG()">
    <br>Ending mileage:
    <input type="text" value="0" name="endingMileage" onchange="calcMPG()">
    <br>Gallons used:
    <input type="text" value="0" name="gallonsUsed" onchange="calcMPG()">
    <br>Miles per galon:
    <input type="text" value="0" name="milesPerGalon">
</form>

4 个解决方案

#1


6  

Your declarations are wrong please correct them.

您的声明有误,请更正。

var startMileage = document.calc.startingMileage.value ;
var endMileage =  document.calc.endingMileage.value;
var gallUsed =  document.calc.gallonsUsed.value;

#2


1  

I don't know why you do that, but try this:

我不知道你为什么那样做,但试试这个:

<script type="text/javascript">
  function calcMPG(){
    var startMileage  = document.calc.startingMileage.value,
        endMileage    = document.calc.endingMileage.value,
        gallUsed      = document.calc.gallonsUsed.value,
        MPG           = (endMileage - startMileage) / gallUsed;

      if(isNaN(startMileage) || isNaN(endMileage) || isNaN(gallUsed)){
        alert('please type in numbers only!');
      } else {
        document.calc.milesPerGalon.value = MPG;
      }
    }
</script>
<form name="calc">
    Starting mileage:<input type="text" value="0" name="startingMileage" onchange="calcMPG()"><br>
    Ending mileage:<input type="text" value="0" name="endingMileage" onchange="calcMPG()"><br>
    Gallons used:<input type="text" value="0" name="gallonsUsed" onchange="calcMPG()"><br>
    Miles per galon:<input type="text" value="0" name="milesPerGalon">
</form>

#3


1  

startMileage

and your other right side references don't mean anything, they are undefined variables.

而你的其他右侧引用并不意味着什么,它们是未定义的变量。

Give your inputs an id and fetch the values from them like this:

为您的输入提供一个id并从中获取值,如下所示:

var startingMileage = document.getElementById('startingMileage').value;

#4


0  

Check here Fiddle

点击这里小提琴

 function calcMPG(){
        var startMileage = document.calc.startingMileage.value;
        var endMileage = document.calc.endingMileage.value;
        var gallUsed = document.calc.gallonsUsed.value;

        var MPG = (endMileage - startMileage) / gallUsed; 

        if(isNaN(startMileage) || isNaN(endMileage) || isNaN(gallUsed))
            alert('please type in numbers only!');
        else 
            document.calc.milesPerGalon.value = MPG;
    }

#1


6  

Your declarations are wrong please correct them.

您的声明有误,请更正。

var startMileage = document.calc.startingMileage.value ;
var endMileage =  document.calc.endingMileage.value;
var gallUsed =  document.calc.gallonsUsed.value;

#2


1  

I don't know why you do that, but try this:

我不知道你为什么那样做,但试试这个:

<script type="text/javascript">
  function calcMPG(){
    var startMileage  = document.calc.startingMileage.value,
        endMileage    = document.calc.endingMileage.value,
        gallUsed      = document.calc.gallonsUsed.value,
        MPG           = (endMileage - startMileage) / gallUsed;

      if(isNaN(startMileage) || isNaN(endMileage) || isNaN(gallUsed)){
        alert('please type in numbers only!');
      } else {
        document.calc.milesPerGalon.value = MPG;
      }
    }
</script>
<form name="calc">
    Starting mileage:<input type="text" value="0" name="startingMileage" onchange="calcMPG()"><br>
    Ending mileage:<input type="text" value="0" name="endingMileage" onchange="calcMPG()"><br>
    Gallons used:<input type="text" value="0" name="gallonsUsed" onchange="calcMPG()"><br>
    Miles per galon:<input type="text" value="0" name="milesPerGalon">
</form>

#3


1  

startMileage

and your other right side references don't mean anything, they are undefined variables.

而你的其他右侧引用并不意味着什么,它们是未定义的变量。

Give your inputs an id and fetch the values from them like this:

为您的输入提供一个id并从中获取值,如下所示:

var startingMileage = document.getElementById('startingMileage').value;

#4


0  

Check here Fiddle

点击这里小提琴

 function calcMPG(){
        var startMileage = document.calc.startingMileage.value;
        var endMileage = document.calc.endingMileage.value;
        var gallUsed = document.calc.gallonsUsed.value;

        var MPG = (endMileage - startMileage) / gallUsed; 

        if(isNaN(startMileage) || isNaN(endMileage) || isNaN(gallUsed))
            alert('please type in numbers only!');
        else 
            document.calc.milesPerGalon.value = MPG;
    }