我的ASP.NET页面中有一个TextBox。当文本框中的值更改时,将触发javascript函数。
知道我为什么会收到这个错误吗?
错误:
0x800a138a - JavaScript运行时错误:预期的功能
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>
答案 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(){
}