代码之家  ›  专栏  ›  技术社区  ›  Ariel

jQuery:为日期选择器指定minDate和maxDate时遇到问题

  •  2
  • Ariel  · 技术社区  · 14 年前

    我试图强制只选择两个日期之间的日期(今天减去一周,今天加上一周),而是得到一个禁用了过去日期和不受限制的未来日期的日期选择器。

    你知道吗?(我是jQuery的新手,玩它的第二天…)谢谢!

    <html>                                                                  
    <head>                                                                  
        <title>jquery sample</title>
        <script type="text/javascript" src="jquery-1.4.1.min.js"></script>
        <script type="text/javascript" src="date.js"></script>
        <script type="text/javascript" src="jquery.datePicker.js"></script>
        <link href="datePicker.css" rel="stylesheet" type="text/css" />
        <link href="custom.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" charset="utf-8">
            $(function () {
                $('.date-pick').datePicker({ minDate: '-7D', maxDate: '+7D' }).val(new Date().asString()).trigger('change');
            });
        </script>
    </head>
    <body>                                                                  
        <a href="">Link</a>
        <input name="date1" id="date1" class="date-pick" />
    </body>                                                                 
    

    3 回复  |  直到 14 年前
        1
  •  2
  •   Nick Craver    14 年前

    当前插件的选项不同, startDate and endDate 它们一定是弦,像这样:

    $(function () {
      $('.date-pick').datePicker({ 
         startDate : new Date().addDays(-7).asString(), 
         endDate: new Date().addDays(7).asString()
      }).val(new Date().asString()).trigger('change');
    });​
    

    You can give it a try here . 你从中提取的文件是 不同的 插件,jqueryui日期选择器 found here .

        2
  •  2
  •   Community basarat    7 年前

    @Nick 他指出。你使用的datepicker插件 minDate maxDate 选项: http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/documentation.html

    http://jqueryui.com/demos/datepicker/#option-minDate

    你想用哪一个?如果是插件(不是jqueryui),那么使用 startDate endDate 选项(看起来它们只接受绝对日期字符串[在我看来有点糟糕]):

    $(function() {
        var MS_PER_WEEK = 604800000;
            now = new Date().getTime(),
            start = new Date(now - MS_PER_WEEK),
            end = new Date(now + MS_PER_WEEK),
            startStr = start.getDate() + '/' + (start.getMonth() + 1) + '/' + start.getFullYear(),
            endStr = end.getDate() + '/' + (end.getMonth() + 1) + '/' + end.getFullYear()
    
        $('.date-pick').datePicker({
            startDate: startStr
            endDate: endStr
        }).val(new Date().asString()).trigger('change');
    });
    

    d 表示天数:

    $(function() {
        $('.date-pick').datepicker({
            minDate: '-7d',
            maxDate: '+7d'
        }).val(new Date().asString()).trigger('change');
    });
    

        3
  •  0
  •   danielgwood    14 年前

    我认为您需要使用startDate和endDate:

    $('.date-pick').datePicker({ startDate: '-2D', endDate: '+2D' }).val(new Date().asString()).trigger('change');
    

    也就是说,假设您正在使用此处描述的插件: kevinluck.com . 这对我的本地测试有效。我假设你正在使用这个插件,因为它和凯文网站上的例子很相似。