如何获取一个jquery datepicker输入以与另一个的值集成?

时间:2010-09-27 13:51:40

标签: jquery calendar datepicker

我有一个包含3个输入字段的表单,它使用jQuery的DatePicker插件。字段是#startdate,#endate和#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 个答案:

答案 0 :(得分:1)

是的,有一个名为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
  }; 
}​