添加 runat="server" 时 Datepicker 不工作

Datepicker is not working when adding runat="server"

我指的是这个站点 http://jqueryui.com/datepicker/ 的日期选择器,我的编码与给定的源代码完全一样。这些编码工作正常。

但是..

当我在这段代码中添加 runat="server"<input type="text" id="datepicker"> 单击 [=12= 我的日历不会显示].我需要放置 runat="server" 以便我能够在后面的代码中使用它。

非常感谢你们的任何建议。谢谢。

runat=server 添加母版页时,它会生成带母版页的默认样式 id。因此要避免它,请尝试 ClientIDMode="Static"

<input type="text" id="datepicker" runat="server" ClientIDMode="Static">

没有 ClientIDMode='Static' 生成的 HTML 是

<input type="text" id="MainContent_datepicker" name="ctl00$MainContent$datepicker">

有关更多信息,请通过 使用 firebug

检查元素,将 firebug 用于 mozilla firefox

当文本框在查看源代码中运行时="server",您可以找到生成动态前缀的文本框的名称。

因此,在您的 JavaScript 中,您不应该使用标签中指定的 id 属性,而应该使用 <%=IdAttributeValue.ClientID%> 来生成 ID。

尝试使用这个

<script>
 $(document).ready(function () {
 $("body").delegate("#<%=datepicker.ClientID%>", "focusin", function () {
$(this).datepicker();
 });
 });
  </script> 

我找到了正确的方法。

为ASP.Net设计

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

在客户端服务器端

$(document).ready(function () { $("[id$=datepicker]").datepicker(); });

$("[id$=datepicker]").datepicker(); 替换为 $('#<%= datepicker.ClientID %>').datepicker(); 然后日历将显示出来并能够在后面的代码中调用 datepicker