调用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线。

+0

现在事件并没有发射!!! – NaveenBhat 2011-02-23 14:42:25

+0

什么事? – 2011-02-23 14:44:28

+0

ddlGiftCardSource的onChange事件。 – NaveenBhat 2011-02-23 14:45:48

也许这是因为您在onChange处理程序中使用ShowGiftCardOccasion()方法,但您的方法名是ShowGiftCardSource()?然后JavaScript只是无法找到具有正确名称的方法。

+0

+1:伟大的地方! – 2011-02-23 14:27:30

+0

对不起,应该是 – NaveenBhat 2011-02-23 14:33:33

+0

' NaveenBhat 2011-02-23 14:34:01