在asp.net控件中使用jQuery

在asp.net控件中使用jQuery,jquery,asp.net,Jquery,Asp.net,我使用jquery选择器时遇到了一个有趣的情况,试图在asp.net LoginView中查找某些内容: 假设我有4个控件,2个纯htmls和2个es。一个中的每一个 这是因为服务器端标记在呈现时被赋予唯一标识符。如果打开页面的呈现源代码,您将看到元素的id已修改为包含整个控件层次结构。因此,jQuery选择器将不再找到该元素 但是,由于它们始终以指定的id结尾,因此可以使用jQuery选择器: $('[id$="aspTextbox1"]').datepicker(); 或者,为datepi

我使用jquery选择器时遇到了一个有趣的情况,试图在asp.net LoginView中查找某些内容:

假设我有4个控件,2个纯html
s和2个
es。一个
中的每一个


这是因为服务器端标记在呈现时被赋予唯一标识符。如果打开页面的呈现源代码,您将看到元素的
id
已修改为包含整个控件层次结构。因此,jQuery选择器将不再找到该元素

但是,由于它们始终以指定的id结尾,因此可以使用jQuery选择器:

$('[id$="aspTextbox1"]').datepicker();
或者,为
datepicker
CssClass
指定要执行此操作的所有元素,并执行以下操作:

$('.datepicker').datepicker();
这可能是实现相同目标的一种更简洁、不那么突兀的方法,因为它允许您使用一行代码对所有这些元素调用
datepicker
方法。此外,它允许您添加更多的datepicker元素,只需为新元素提供相同的类,而无需每次修改jQuery:

<asp:TextBox id="aspTextbox999" CssClass="datepicker" runat="server" />

原因是ASP.NET在运行时自动生成的ID与您试图在jQuery中读取的ID不同。打开viewsource并查看生成的ID。您可以使用该Id,否则,如果您使用的是ASP.NET 4.0或更高版本,我认为您可以将该Id设置为可预测的。请阅读以下内容: 对于ASP.NET控件

          $("#"+<%= Control.ClientID %>).val();
$(“#“+).val();

clientdmode
就是Devesh所说的。
$('.datepicker').datepicker();
<asp:TextBox id="aspTextbox999" CssClass="datepicker" runat="server" />
          $("#"+<%= Control.ClientID %>).val();