Как выбрать дату будущего в DatePicker JQuery - PullRequest
4 голосов
/ 03 февраля 2012

Я использую datePicker следующим образом:

$("#dataStart").datepicker({
beforeShow: function () { $('#ui-datepicker-div').css('z-index',9999); },
dateFormat: 'mm/dd/yy'});
$("#dataEnd").datepicker({
beforeShow: function () { $('#ui-datepicker-div').css('z-index',9999); },
dateFormat: 'mm/dd/yy'});

Я хочу принудительно выбрать дату в будущем, а не в прошлом, есть ли возможность сделать это?если это так, возможно динамическое изменение для второго средства выбора даты, поэтому, если пользователь выбирает дату, во втором поле он должен выбрать дату рядом с первым выбранным.Надеюсь, я тоже задам свой вопрос :) Спасибо всем!

Ответы [ 6 ]

12 голосов
/ 03 февраля 2012

minDate:1 допускается только даты завтра и далее. Затем добавьте onselect, чтобы ограничить dataEnd:

$("#dataStart").datepicker({
    minDate: 1,
    onSelect: function(theDate) {
        $("#dataEnd").datepicker('option', 'minDate', new Date(theDate));
    },
    beforeShow: function() {
        $('#ui-datepicker-div').css('z-index', 9999);
    },
    dateFormat: 'mm/dd/yy'
});

Ссылка: http://blog.alagad.com/2009/04/20/playing-with-jquery-datepicker/

Пример: http://jsfiddle.net/jtbowden/F39kt/

2 голосов
/ 03 февраля 2012

Если вы вернете [false] в beforeShowDay событии DatePicker, он отключит этот день.Вы можете сравнить дату и текущую дату и вернуть [true / false] соответственно.

Попробуйте это.

$("#dataStart").datepicker({
     beforeShow: function () { 
         $('#ui-datepicker-div').css('z-index',9999); 
     },
     dateFormat: 'mm/dd/yy',
});
$("#dataEnd").datepicker({
     beforeShow: function () { 
         $('#ui-datepicker-div').css('z-index',9999); 
     },
     dateFormat: 'mm/dd/yy',
     beforeShowDay: function(date){
          return [(date > ($("#dataStart").datepicker("getDate") 
                          || new Date()))];
     }
});

Демо

0 голосов
/ 04 декабря 2015

Это старая тема, но она несколько не выяснена.Может быть из-за изменений в самом виджете пользовательского интерфейса jQuery, но для любого, кто сталкивается с этим:

Чтобы ограничить область выбора дат только будущими датами - установите параметр minDate равным 0.

* 1005ограничиваясь только прошлыми датами, вы должны установить для параметра maxDate значение 0.

Это хорошо, поскольку в нем не нужно вызывать функцию new Date(), как это предлагается в других местах в этой теме.

Пример:

$('.your_datepicker').datepicker({
    minDate: 0
});
0 голосов
/ 03 февраля 2012

http://jqueryui.com/demos/datepicker/.

Посмотрите на параметр minDate.Вы можете установить его динамически с помощью метода option.

0 голосов
/ 03 февраля 2012

Попробуйте это ...

var dates=$("#from, #to").datepicker({
     changeMonth:true, onSelect: function( selectedDate ) {
         var option = this.id == "from" ? "minDate" : "maxDate",
         instance = $( this ).data( "datepicker" ),
         date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings );
         dates.not( this ).datepicker( "option", option, date );
     }
 });
0 голосов
/ 03 февраля 2012
var myDate = new Date();
myDate.setDate(myDate.getDate()+10);
var prettyDate =(myDate.getMonth()+1) + '/' + myDate.getDate() + '/' + myDate.getFullYear();

$("#thedate").datepicker({dateFormat: 'mm/dd/yy',altFormat: 'yyyymmdd'});
$("#thedate").val(prettyDate);

Вот как я это делаю. «thedate» - мой сборщик дат. Я переношу дату на сегодня + 10 дней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...