2014-03-04 170 views
0

用户在页面上有2个输入,并且应该能够选择从startdate到enddate 3个月内的任何日期范围。 enddate也不应该早于startdate,而同一次检查会阻止startdate晚于enddate。有没有办法在日期选择器中包含日期范围限制而无需外部验证?用户可以选择的日期不限于他们可以走多远。如果他们需要2年前的数据,他们可以从该年起抽3个月。在页面加载时,enddate距今天为2天,startdate为今天的日期。jQuery UI日期选择器日期范围限制3个月

编辑:

 $(function() { 
     $("#startDate").datepicker({ 
      onSelect: function (selectedDate) { 
       var orginalDate = new Date(selectedDate); 
       var monthsAddedDate = new Date(new Date(orginalDate).setMonth(orginalDate.getMonth() + 3)); 
       alert(monthsAddedDate); 
       $("#endDate").datepicker("option", 'minDate', selectedDate); 
       $("#endDate").datepicker("option", 'maxDate', monthsAddedDate); 
      } 
     }); 

     $("#endDate").datepicker({ 
      onSelect: function (selectedDate) { 
       var orginalDate = new Date(selectedDate); 
       var monthsAddedDate = new Date(new Date(orginalDate).setMonth(orginalDate.getMonth() - 3)); 
       alert(monthsAddedDate); 
       $("#startDate").datepicker("option", 'minDate', selectedDate); 
       $("#startDate").datepicker("option", 'maxDate', monthsAddedDate); 
      } 
     }) 
    }); 
+0

我已经取得了一些地面,但仍卡住。它现在得到3个月的限制,但我不能选择开始和结束之间的任何日期。我选择结束日期,并且它将开始日期更新为选定日期的3个月,这很酷,但我无法在3个月内选择任何日期。 – user1732364

回答

2

解决它!!!!我必须切换它设置变量的最小和最大日期的位置。我让他们倒退了。现在,你无法超越3个月,无论是日期,但可以挑选3个月内任何日期:d

 $(function() { 
     $("#startDate").datepicker({ 
      onSelect: function (selectedDate) { 
       var orginalDate = new Date(selectedDate); 
       var monthsAddedDate = new Date(new Date(orginalDate).setMonth(orginalDate.getMonth() + 3)); 
       alert(monthsAddedDate); 
       $("#endDate").datepicker("option", 'minDate', selectedDate); 
       $("#endDate").datepicker("option", 'maxDate', monthsAddedDate); 
      } 
     }); 

     $("#endDate").datepicker({ 
      onSelect: function (selectedDate) { 
       var orginalDate = new Date(selectedDate); 
       var monthsAddedDate = new Date(new Date(orginalDate).setMonth(orginalDate.getMonth() - 3)); 
       alert(monthsAddedDate); 
       $("#startDate").datepicker("option", 'minDate', monthsAddedDate); 
       $("#startDate").datepicker("option", 'maxDate', selectedDate); 
      } 
     }) 
    }); 
1

Jquery的日期选择日期范围限制在30天内 请参阅此链接

http://www.freshcodehub.com/Article/25/jquery-datepicker-date-range-restriction-in-aspnet

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
 
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
 
    
 
    <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 
    <script> 
 
     $(function() { 
 
      $("#datepicker").datepicker({ minDate: -15, maxDate: +15 }); 
 
     }); 
 
    </script> 
 

 
<input type="textbox" id="datepicker">

相关问题