asp.net主页头内容中的Javascript似乎无法正常工作

时间:2012-03-26 06:47:06

标签: jquery asp.net

我正在使用带有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" />

但是当我将光标放入这些文本框时,日期选择器不会显示。

请建议。

3 个答案:

答案 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();
    });