调用javascript函数时出现“Object expected”错误
我想根据在下拉列表中选择的值更改文本框的可见性。调用javascript函数时出现“Object expected”错误
我创建了这样的功能:
function ShowGiftCardSource() {
var ddlGiftCardSource = document.getElementById('<%=ddlGiftCardSource.ClientID%>');
var txtGiftCardSource = document.getElementById('<%=txtGiftCardSource.ClientID%>');
if (ddlGiftCardSource.value == "Other") {
txtGiftCardSource.style.visibility = "visible";
txtGiftCardSource.focus();
}
}
在CS页:
ddlGiftCardSource.Attributes.Add("onChange", "OnSelectedIndexChanged();");
,并在控制:
<asp:DropDownList ID="ddlGiftCardSource" runat="server" Width="151px" onChange="ShowGiftCardSource();">
但我发现了以下错误:
Microsoft JScript runtime error: Object expected
请问有人能帮我解决吗?
变化后面的代码:
ddlGiftCardSource.Attributes.Add("onChange", "ShowGiftCardSource();");
,并清除onchange
从标签:
<asp:DropDownList ID="ddlGiftCardOccasion" runat="server" Width="151px">
标签中的onchange
是服务器端方法调用。
编辑:如果你已经拥有了服务器端方法,你必须先添加AutoPostBack设置为下拉,然后在服务器端onchange事件显示文本:
<asp:DropDownList ID="ddlGiftCardOccasion" runat="server" Width="151px" OnChange="ShowGiftCardSource" AutoPostBack="True">
而在你的C#代码背后:
void ShowGiftCardSource(object sender, EventArgs e) {
//code.....
txtGiftCardSource.Visible = true;
}
当然,摆脱ddlGiftCardSource.Attributes.Add
线。
也许这是因为您在onChange处理程序中使用ShowGiftCardOccasion()方法,但您的方法名是ShowGiftCardSource()?然后JavaScript只是无法找到具有正确名称的方法。
+1:伟大的地方! – 2011-02-23 14:27:30
对不起,应该是 – NaveenBhat 2011-02-23 14:33:33
'
现在事件并没有发射!!! – NaveenBhat 2011-02-23 14:42:25
什么事? – 2011-02-23 14:44:28
ddlGiftCardSource的onChange事件。 – NaveenBhat 2011-02-23 14:45:48