Пользовательский интерфейс jquery - добавление даты к выбранной дате - PullRequest
2 голосов
/ 02 марта 2012

Это кажется простой вещью, но я не могу ее решить, и мне это действительно нужно. Как я могу добавить дату к выбранной дате через событие SelectedDate?

Мне нужно установить ограничение диапазона дат для 2 сборщиков дат.После того, как пользователь установил один указатель даты, другому необходимо разрешить только дату, равную выбранной дате первого указателя даты, плюс один месяц.

Пример: если я установил «3 марта» в первом календаре, то второй должен разрешать только даты, превышающие «3 апреля».

Пока что я могу получить толькота же самая выбранная дата или дата, которую я установил через $('#dtpicker').datepicker( "setDate" , '+1m');.Я попробовал пример документации jquery-ui, но ничего.

Ответы [ 2 ]

5 голосов
/ 02 марта 2012

Это должно помочь вам:

var plus_one_month =  '';
var minus_one_month =  '';
$("#from").datepicker({
    beforeShow: function() {
        if($("#to").val() != '') { 
            minus_one_month =  new Date($("#to").val());
            minus_one_month.setMonth(minus_one_month.getMonth() - 1);
        } else {
            minus_one_month =  '';
        }
        return {
            minDate: minus_one_month,
            maxDate: new Date($("#to").val())
        }
    }
});

$("#to").datepicker({
    beforeShow: function() {
        if($("#from").val() != '') { 
            plus_one_month =  new Date($("#from").val());
            plus_one_month.setMonth(plus_one_month.getMonth() + 1);
        } else {
            plus_one_month =  '';
        }
        return {
            minDate: new Date($("#from").val()),
            maxDate: plus_one_month
        }
    }
});

Как вы можете видеть здесь .

1 голос
/ 02 марта 2012

Я реализовал похожую функциональность на двух сборщиках дат.

function handleDateChange() {
    var dateStart = $('#datepicker-startdate').datepicker("getDate"), 
        dateEnd = $('#datepicker-enddate').datepicker("getDate");
    if (dateStart !== null) {
        dateStart.setDate(dateStart.getDate() + 1);
        $('#datepicker-enddate').datepicker('option', 'minDate', dateStart);
    }
    if (dateEnd !== null) {
        dateEnd.setDate(dateEnd.getDate() - 1);
        $('#datepicker-enddate').datepicker('option', 'maxDate', dateEnd);
    }
 }

Используйте этот метод в обработчике onSelect ваших средств выбора даты (как опция init):

$(/*your datepicker selector*/).datepicker({
    // ... other init options
    onSelect : function(dateText, inst) {handleDateChange();}
});

Я думаю, это похоже на то, что вам нужно, если нет, то это определенно должно привести вас на правильный путь.

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