2015-10-14 64 views
0

我看過帖子ASP.NET Can't set value to datepicker from code behind並試圖關注,但我看到日期爲NaN/NaN/NaN。這裏是我的jQuery DatePicker和asp.net代碼。ASP.NET無法設置datepicker的值

<script> 
$(function() { 

$('#txtDate').datepicker({ 

onSelect: function() { if (typeof (Page_ClientValidate) == 'function')Page_ClientValidate($(this).attr('txtDate'));}}).datepicker("setDate") 
$("#txtDate").datepicker({ changeMonth: true, 
changeYear: true, 
yearRange: '1920:2030', 
dateFormat: 'mm/dd/yy', 
onSelect: function() { if (typeof (Page_ClientValidate) == 'function') Page_ClientValidate();} 
}); 
}); 

$(document).ready(function() { 
var dtString = $("#<%=hdnDate.ClientID%>").val(); 
if(dtString !== ""){ 
var defaultDate = new Date(dtString[0], dtString[1], dtString[2]); 
$("#txtDate").datepicker("setDate", defaultDate); 
} 
}); 
</script> 

這裏是我的asp.net代碼:

<asp:TextBox ID="txtDate" runat="server" Width="150px"></asp:TextBox> 
<asp:HiddenField id="hdnDate" runat="server" /> 

我填充hdnDate字段的值,當用戶點擊任何日期。當我查看頁面的源代碼時,我看到以下內容

<input name="txtDate" type="text" value="NaN/NaN/NaN" id="txtDate" style="width:150px;" /> 
<input type="hidden" name="hdnDate" id="hdnDate" value="10/20/2015" /> 

我在做我的jQuery代碼有問題嗎?

在此先感謝您的時間和幫助。

回答

0

這是該行惹的禍:

var defaultDate = new Date(dtString[0], dtString[1], dtString[2]); 

當隱藏字段包含10/20/2015價值,這看起來像

var defaultDate = new Date("1", "0", "/"); 

這些都不是整數,即使轉換髮生,這些年份,月份和日期也不是有效的值(正如對此簽名所預期的那樣)。

考慮通過日期作爲一個整體,而不是:

var defaultDate = new Date(dtString); 

只要Date.parse可以識別和解析您的格式,這應該正常工作。

+0

var defaultDate = new Date(dtString);僅在Firefox和Chrome中工作,IE顯示爲當前日期現在處於邊緣模式,其中源代碼顯示 citm09