jQuery: возникают проблемы с указанием minDate и maxDate для DatePicker

Я пытаюсь заставить выбирать только даты между (сегодня минус неделя, сегодня плюс неделя), но вместо этого получаю 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>                                                                 

3 ответа

Решение

Опции разные для вашего текущего плагина, 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, найденному здесь.

Похоже, что вы Nick Craver те же два Nick Craver, что и я, как указал Nick Craver. Плагин DatePicker, который вы используете, не берет minDate а также maxDate варианты: http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/documentation.html

Но JPuery UI DatePicker делает. http://jqueryui.com/demos/datepicker/

Какой из них вы хотели использовать? Если это плагин (а не JQuery UI), то используйте startDate а также endDate параметры (похоже, они принимают только строки абсолютной даты [вид дерьма, 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');
});

Я думаю, что вам нужно использовать startDate и endDate:

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

То есть, если вы используете плагин, описанный здесь: kevinluck.com. Это работает для меня на моем местном тесте. Я предполагаю, что вы используете этот плагин из-за сходства с примерами на сайте Кевина.

Другие вопросы по тегам