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(){
}
我的 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(){
}