2011-02-25 112 views
2

我正在使用ASP.NET來開發一個網站,我將在我的網站中使用jQuery datepicker。我使用下面的代碼,但它不會工作。有誰知道爲什麼?jQuery datepicker不能在ASP.NET頁面工作

<link href="css/calendar/jquery-ui-1.8.7.custom.css" rel="stylesheet" type="text/css" /> 
<script src="jquery/calendar/jquery-1.4.4.min.js" type="text/javascript"></script> 
<script src="jquery/calendar/jquery-ui-1.8.7.custom.min.js" type="text/javascript"></script> 


<script type="text/javascript"> 
$(function() { 
    $("#txtEventDate").datepicker(); 
}); 
</script> 

這裏是我的文本框HTML代碼:

<asp:TextBox ID="txtEventDate" runat="server" Width="125px"></asp:TextBox> 

回答

0

嘗試一下本作你的JavaScript:

$(document).ready(function() { 
    $("#txtEventDate").datepicker() 
}); 

這可能是真的更容易幫助,如果您發佈了HTML的培訓相關的部分也是代碼(包含具有txtEventDate id的元素的代碼)。

0

除了jQuery UI之外,您是否包含了最新的jQuery文件?從你的代碼中不明顯。

您還沒有包含任何生成的HTML,但是您是否確保在HTML代碼中輸入的文本具有正確的ID集?

此外,你應該嘗試利用.ready函數,使得代碼只觸發時療法DOM滿載:

$(document).ready(function() { 
    $("#txtEventDate").datepicker() 
}); 

編輯:現在你已經改變了你的代碼,以顯示包含jQuery,但是您沒有粘貼ASP生成的相關HTML代碼。我懷疑問題是輸入ID是隨機生成的,並且不匹配#txtEventDate。

其他編輯:您現在已經包含了ASP代碼,但您仍未包含生成的HTML源代碼輸入 - 正如大多數答案所指出的那樣,ASP可能會在您的ID中包含其他信息標籤,這是防止jQuery識別它。

12

也許文本框的ID不是「txtEventDate」 - 它可能是「ctrl00-ucDatePicker-txtEventDate」或其他東西,因爲asp.net往往會動態生成ID。

我的建議是要麼通過已分配給框類中選擇,或

<asp:textbox id="txtEventDate" runat="server" cssclass="date-picker" /> 

再申請使用一類選擇,而不是一個ID選擇

$(".date-picker").datepicker() 

,或者如果JavaScript是在你可以考慮的頁面...

$("#<%= txtEventDate.ClientID %>").datepicker() 

或者你可以嘗試一個部分ID選擇器

$("input[id*=txtEventDate]").datepicker() 

有三種解決方案給你!

+0

類選擇器對我來說不起作用,其他2個卻沒有。 +1 – 2015-12-07 16:28:38

0

如果您嘗試在編輯模式下在asp.formview中使用此日期選擇器,問題出現在FriendlyURL中,您所做的解決方案找到Here