我正在使用带有ASP.NET文本框的现成的jquery日期选择器。我也在使用MasterPage,所以这就是我到目前为止所做的 -
页面链接到母版页
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<link href="overcast/jquery-ui-1.8.15.custom.css" rel="Stylesheet" type="text/css" />
<script src="js/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.14.custom.min.js" type="text/javascript"></script>
<script>
$(function () {
$("#txtBeginDate").datepicker();
$("#txtEndDate").datepicker();
});
</script>
</asp:Content>
两个文本框控件
<asp:TextBox ID="txtBeginDate" runat="server" Placeholder="Select Begin Date"></asp:TextBox> to
<asp:TextBox ID="txtEndDate" runat="server" Placeholder="Select End Date" />
但是当我将光标放入这些文本框时,日期选择器不会显示。
请建议。
答案 0 :(得分:3)
默认情况下,ASP WebForms为每个包含任何父ID的控件生成唯一的客户端ID。所以id最终可能会像“ct100_ct101_txtBeginDate”一样。
尝试将客户端ID与内联代码一起使用,如:
$("#<%= txtBeginDate.ClientID %>").datepicker();
答案 1 :(得分:3)
正如@Chris在他的回答中提到的,ASP.Net网络表单服务器控件中生成的id可能不同,如果你使用.net4设置ClientIDMode="Static"
那么你可以使用自己的id
<asp:TextBox ID="txtBeginDate" runat="server" ClientIDMode="Static" Placeholder="Select Begin Date"></asp:TextBox> to
<asp:TextBox ID="txtEndDate" runat="server" ClientIDMode="Static" Placeholder="Select End Date" />
答案 2 :(得分:0)
正如Chris所说,实际的控件ID在呈现时会有很大的不同。如果你想坚持使用JQuery,你可以使用控件ID的已知部分,因为它始终位于实际ID的末尾,如Attribute Ends With Selector:
$(function () {
$("input[id$=txtBeginDate").datepicker();
$("input[id$=txtEndDate").datepicker();
});