2

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

任何想法?(我是 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>                                                                 

4

3 回答 3

2

正如@Nick指出的那样,您似乎正在混合我所做的两个日期选择器。您使用的 datepicker 插件不带minDate选项maxDatehttp ://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/documentation.html

但是 jQuery UI 日期选择器可以。http://jqueryui.com/demos/datepicker/#option-minDate

你的意思是用哪一个?如果是插件(不是 jQuery UI 插件),则使用startDateandendDate选项(看起来它们只接受绝对日期字符串 [有点蹩脚,IMO]):

$(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');
});

对于 jQuery UI 日期选择器,请尝试使用小写字母d来表示日期:

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

于 2010-09-01T13:55:11.750 回答
2

您当前插件的选项不同,startDate它们endDate必须是字符串,如下所示:

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

你可以在这里试一试。您似乎从中提取的文档是针对另一个插件的,jQuery UI Datepicker found here

于 2010-09-01T14:08:11.623 回答
0

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

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

也就是说,假设您使用的是此处描述的插件:kevinluck.com。这适用于我的本地测试。由于与 Kevin 网站上的示例相似,我假设您正在使用此插件。

于 2010-09-01T14:07:55.417 回答