Как я могу получить один входной сигнал jquery datepicker для интеграции со значением другого? - PullRequest
1 голос
/ 27 сентября 2010

У меня есть форма с 3 полями ввода, которые используют плагин jQuery DatePicker.Поля: #startdate, #enddate и #raindate.Я использую функцию события DatePicker, чтобы заставить #startdate и #enddate работать вместе, поэтому #enddate не может быть перед #startdate.Кстати, оба эти поля обязательны для заполнения.Поле #raindate не является обязательным.Однако, если пользователь хочет добавить здесь дату, я хочу, чтобы она была после даты, выбранной в #enddate.Как мне это сделать?Вот код, который я имею для того, чтобы заставить startdate и enddate работать вместе:

function getDates() {
    var dates = $("#startdate, #enddate" ).datepicker({
        defaultDate: "+1d",
        changeMonth: true,
        numberOfMonths: 1,
        onSelect: function( selectedDate ) {
            var option = this.id == "startdate" ? "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 );
        }
    });
}

Есть ли способ указать что-то вроде этого?

minDate: $(#enddate).val() + 1d

1 Ответ

1 голос
/ 27 сентября 2010

Да, есть опция minDate, которая также поддерживает намного больше опций.

Чтобы получить все доступные варианты, перейдите на -

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

Перейдите на вкладку параметров.

Выше можно достичь с помощью следующего кода -

  $('#raindate').datepicker({
    dateFormat: "dd M yy",
    beforeShow: customRange,
    //Your other configurations.
    });

  function customRange(input) {
   if (input.id == "raindate")
    {
    dateMin = new Date();
    if ($("#enddate").datepicker("getDate") != null)
    {
    dateMin = $("#enddate").datepicker("getDate");
    dateMin.setDate(dateMin.getDate() + 1); 
    }
    }
    return {
    minDate: dateMin
  }; 
}​
...