我想用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获取元素。 不幸的是,两种情况都没有输出。
答案 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 %>")