2012-03-26 62 views
1

我正在使用現成的jQuery日期選擇器和ASP.NET文本框。我還使用母版所以這裏就是我這樣做的遠 -在asp.net masterpage頭內容中的Javascript似乎不起作用

頁面鏈接到母版頁

<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

你檢查是否有JS錯誤?指定的路徑是否正確? – Rafay 2012-03-26 06:49:58

+0

@ 3nigma如何檢查js錯誤? – 2012-03-26 06:51:29

+0

http://getfirebug.com/用於FireFox或Chrome它擁有自己的一套開發工具 – Rafay 2012-03-26 06:53:17

回答

3

默認情況下,ASP WebForms爲包含任何父標識的每個控件生成一個唯一的客戶端ID。所以ID可能會像「ct100_ct101_txtBeginDate」一樣。

嘗試使用客戶端ID與內嵌代碼,如:在他的回答中提到

$("#<%= txtBeginDate.ClientID %>").datepicker(); 
+0

謝謝!有用! – 2012-03-26 06:59:58

3

由於@克里斯的生成的ID可能是在ASP.Net Web窗體服務器控件不同,如果你使用.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" /> 
0

正如克里斯說,當它呈現的實際控制ID將是一大堆不同。如果你想堅持使用jQuery,您可以使用控制ID的已知部分,因爲它總是會在實際的ID的結束,作爲Attribute Ends With Selector

$(function() { 
     $("input[id$=txtBeginDate").datepicker(); 
     $("input[id$=txtEndDate").datepicker(); 
    });