ASP .Net jQuery DropDownList更改事件

时间:2015-03-20 18:02:01

标签: jquery .net drop-down-menu asp-classic

我想用ASP .Net触发jQuery更改事件。 这是ASP和jQuery代码的一部分:

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="body">
<p>
    <asp:DropDownList ID="DropDownList1" runat="server">
    </asp:DropDownList>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</p>
<script type ="javascript">
    $('#DropDownList1').change(function() {
        alert( "Handler for .change() called." );
    });
</script>
</asp:Content>

尝试通过id#body_DropDownList1和#DropDownList1获取元素。 不幸的是,两种情况都没有输出。

1 个答案:

答案 0 :(得分:5)

如果您检查开发人员工具中的dropdownlist元素,您会注意到该ID实际上并不是DropdownList1。 Asp根据ID属性生成一个id以防止重复,因此它的呈现方式不同。您不能依赖于复制它生成的那个,因为它可能会使用不同的ClientID对其进行渲染。你可以设置一个CssClass来选择:

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="body">
<p>
    <asp:DropDownList CssClass="DropdownList1" ID="DropDownList1" runat="server">
    </asp:DropDownList>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
 </p>
 <script type="text/javascript">
    $('.DropdownList1').change(function() {
        alert( "Handler for .change() called." );
    });
 </script>
 </asp:Content>

您还可以根据 ClientID (实际在客户端上呈现的ID)选择元素,如下所示:

$("#<%=DropdownList1.ClientID %>")