用户选择日期从今天起10年后的日期jquery datepicker

时间:2015-09-08 07:52:04

标签: javascript jquery html date datepicker

在我当前的代码中处理jquery日期选择器。我希望datepicker应该显示从1900年 - 直到今天日期用户必须选择从今天起的前10年如果用户选择昨天日期或今天的日期或一个月前的日期eror msg应该填写在错误消息字段

这是我当前的Jquery代码

$(function() {
    $( "#datepicker" ).datepicker({
          changeMonth: true,
          changeYear: true,
        yearRange: '-115:+1M'
    }).on('change',function(){
        alert("check");
    });
 });

这是小提琴Link

请帮助我

谢谢&问候 马哈德

2 个答案:

答案 0 :(得分:3)

您可以在datepicker本身提供的onSelect:fn(){}中进行所有计算。您可以从您选择的函数的参数名称中获取所选值,我已将其命名为date。现在,当你从这里得到日期时,你可以将它转换为dateObject来从中提取年份,就像你需要用新的日期对象获得当前年份一样。

$(function() {
  $("#datepicker").datepicker({
    changeMonth: true,
    changeYear: true,
    yearRange: '-115:+0M',
    onSelect: function(date) { // bind the builtin onSelect event
                               // which gets you the selected date
      var selYear = new Date(date).getFullYear(); // get the full year of selected date 
      var currYear = new Date().getFullYear(); // get the current year

      if ((currYear - selYear) > 10) { // check in the if conditon for 10 years
        $('#display_error').html('You should choose dates from last 10 years only.');
        this.value='';
      }
    }

  });
});
<link href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<p>Date:
  <input type="text" id="datepicker">
</p>
<label id="display_error" class="display_error"></label>

答案 1 :(得分:2)

好试试这个小提琴http://jsfiddle.net/bxh5eq1f/

工作

<强>的Javascript

$(function() {
        $( "#datepicker" ).datepicker({
              changeMonth: true,
              changeYear: true,
            yearRange: '-115:+1M',
            maxDate:new Date(),
        }).on('change',function(){
            today = new Date();
            tenYearBefore = new Date().setYear(new Date().getFullYear() -10);
            selected = new Date($(this).val());
           if(selected>tenYearBefore) {
            $(".display_error").show();   
           } else {
               $(".display_error").hide();
           }
        });
  });

让我知道它是否有效