jQuery: возникают проблемы с указанием minDate и maxDate для DatePicker - PullRequest
2 голосов
/ 01 сентября 2010

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

2 голосов
/ 01 сентября 2010

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

2 голосов
/ 01 сентября 2010

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

А вот средство выбора даты jQuery UI делает. http://jqueryui.com/demos/datepicker/#option-minDate

Какой из них вы хотели использовать? Если это плагин (не 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');
});

0 голосов
/ 01 сентября 2010

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

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

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

...