0x800a138a - JavaScript runtime error: Function expected

0x800a138a - JavaScript runtime error: Function expected

我的 ASP.NET 页面中有一个文本框。更改文本框内的值时会触发 javascript 函数。

知道为什么会出现此错误吗?

错误:

0x800a138a - JavaScript runtime error: Function expected

ASP.NET代码:

<asp:TextBox ID="entryRates" Width="80" onChange="return showAlert(this);" runat="server" CssClass="TextBox" />

JS代码:

<script type ="text/javascript" >
   function showAlert(obj) 
   {
      if (document.getElementById("rType").value!="HLDR") 
      {
        iput = obj;
        //numberic value (positive or negative)
        if (isNaN(iput.value))
        {
            alert("The entered rate is not a number");
            return false;
        }
        //today's rate
        tdrate=iput.value 
        //yesterday rate
        if (document.all.item("rType").value!="OTHR") 
        {
            ydrate = iput.parentElement.parentElement.childNodes(2).firstChild.innerText; 
        }
        else
        {
            ydrate = iput.parentElement.parentElement.childNodes(4).firstChild.innerText; 
        }
        //alert ("yesterdaycode = "+ydrate);
        trptg = 1.25  //thresholdPercent
        //alert("thresholdPercent = "+trptg);

      if (tdrate.length == 0)
         {
         tdrate=0
         }

      if (ydrate.length == 0)
         {
         ydrate=0
         }
      totchg = (((tdrate / ydrate) - 1) * 100)

      if (totchg < 0)
         {
         totchg = (totchg * -1)
         signchg=1
         }
      else
         {
         totchg = totchg
         signchg=0
         }

      if (totchg != 100 & totchg > trptg)
         {
         if (signchg==0)
            {var s = "" + Math.round(totchg * 100) / 100}
         else
            {var s = "-" + Math.round(totchg * 100) / 100}
         alert("% Change = "+s)
         }
        }
      }  
      </script>

.childNodes 是一个 "array-like object"。通过方括号访问其元素:

ydrate = iput.parentElement.parentElement.childNodes[2].firstChild.innerText; 


旁注:不要使用 document.all。这是一个专有的扩展。使用标准方法,例如 document.getElementById(),正如您已经在函数顶部所做的那样。

最近我遇到了同样的 javascript 运行时错误,这只发生在 IE 中。问题出在我的一个函数名中。我想这个名字是在 IE 或其他东西中保留的。我刚刚重命名它,问题就解决了。为了以防万一,这里是有问题的函数的名称:

function start(){
}

重命名为:

function startInstallation(){
}