使用Javascript的验证日期&;ASP.Net

使用Javascript的验证日期&;ASP.Net,javascript,Javascript,我有一个ASP.Net表单,用户可以从Calendar Extender控件中选择日期,我有两个日期字段(FromDate和ToDate) 我想使用javascript验证以下内容: FromDate应始终小于ToDate FromDate和ToDate不应小于今天的日期 如果这两个条件都是真的,那么我想从codebehind调用一个方法,该方法将计算所选期间(不包括周末)内的总天数,并将其显示给用户(此方法工作正常) 在下面的代码中,当前面提到的两个条件都满足时,我尝试了uu doPost

我有一个ASP.Net表单,用户可以从Calendar Extender控件中选择日期,我有两个日期字段(FromDate和ToDate)

我想使用javascript验证以下内容:

  • FromDate应始终小于ToDate
  • FromDate和ToDate不应小于今天的日期
如果这两个条件都是真的,那么我想从codebehind调用一个方法,该方法将计算所选期间(不包括周末)内的总天数,并将其显示给用户(此方法工作正常)

在下面的代码中,当前面提到的两个条件都满足时,我尝试了uu doPostBack触发codebehind方法。它触发codebehind方法,但是javascript变量变得不正确(compareDate变量总是在每次函数调用和回发时递增),因此所有结果都变得不正确

*下面是我使用Javascript验证日期的当前方法,它是从两个文本框的calendar extender控件的OnClientDateSelectionChanged事件触发的*


var fromDate=新日期();
var toDate=新日期();
函数检查日期(发送方,参数){
if(sender.get_id()='CalendarExtenderFrom'){
fromDate=发件人。\u选择的日期;
}
else if(sender.get_id()=“CalendarExtender to”){
toDate=发件人。\u选择的日期;
}
//检查所选日期是否小于今天的日期
var todayDate=新日期();
var year=todayDate.getFullYear();
var month=todayDate.getMonth();
var day=todayDate.getDate();
var dateOnly=新日期(年、月、日);
如果(发件人。\u选择日期<仅日期){
警报(“您不能选择比今天早的一天!”);
发送方。\文本框。设置\值(“”);
返回;
}
//检查FromDate是否>ToDate
if(document.getElementById('TextBoxDateOfLeave').value!=“”&document.getElementById('TextBoxDateOfReturn').value!=“”){
var compareDate=新日期(fromDate.getFullYear()、fromDate.getMonth()、(fromDate.getDate())+1,00,00,00);
如果(toDate
ASP.Net控件:

<asp:TextBox ID="TextBoxDateOfLeave" runat="server" ClientIDMode="Static" ontextchanged="CalculateLeaveDays"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtenderFrom" runat="server" Enabled="True" Format="dd/MMM/yyyy" TargetControlID="TextBoxDateOfLeave" OnClientDateSelectionChanged="checkDate" />

<asp:TextBox ID="TextBoxDateOfReturn" runat="server" ClientIDMode="Static" ontextchanged="CalculateLeaveDays"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtenderTo" runat="server" Enabled="True" Format="dd/MMM/yyyy" TargetControlID="TextBoxDateOfReturn" OnClientDateSelectionChanged="checkDate" />


请让我知道是否有办法实现这一点


谢谢你,

你在找这样的东西吗?我在这里加了一个。我使用了jquery ui日期选择器,但您可以使用您选择的任何日期选择器,只要值为“yyyy/mm/dd”或“mm/dd/yyyy”,我想

谢谢您这对我帮助很大:)
<asp:TextBox ID="TextBoxDateOfLeave" runat="server" ClientIDMode="Static" ontextchanged="CalculateLeaveDays"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtenderFrom" runat="server" Enabled="True" Format="dd/MMM/yyyy" TargetControlID="TextBoxDateOfLeave" OnClientDateSelectionChanged="checkDate" />

<asp:TextBox ID="TextBoxDateOfReturn" runat="server" ClientIDMode="Static" ontextchanged="CalculateLeaveDays"></asp:TextBox>
<asp:CalendarExtender ID="CalendarExtenderTo" runat="server" Enabled="True" Format="dd/MMM/yyyy" TargetControlID="TextBoxDateOfReturn" OnClientDateSelectionChanged="checkDate" />