0x800a138a - JavaScript运行时错误:预期的功能

时间:2015-01-23 20:47:05

标签: javascript asp.net textbox onchange

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

知道我为什么会收到这个错误吗?

错误:

  

0x800a138a - JavaScript运行时错误:预期的功能   enter image description here

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>

2 个答案:

答案 0 :(得分:3)

.childNodes是一个&#34;类似数组的对象&#34;。一个通过方括号访问其元素:

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

<小时/> 附注:不要使用document.all。它是一个专有扩展。使用标准方法,例如document.getElementById(),就像您在功能顶部已做的那样。

答案 1 :(得分:0)

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

function start(){
}

重命名为:

function startInstallation(){
}