Datepicker在单个表视图中显示上个月的日期

时间:2014-07-25 12:21:11

标签: javascript jquery jquery-ui datepicker

我试图在具有单个表格视图的日期选择器中显示当天的最后35天。其余的日期不应该是可见的。 例如,对于2014年7月25日,datepicker应该是这样的。

 SUN MON TUE WED THU FRI SAT

                          21
  22  23  24  25  26  27  28
  29  30   1   2   3   4   5
   6   7   8   9  10  11  12
  13  14  15  16  17  18  19
  20  21  22  23  24  25    

编写了Java代码here

我尝试将jquery-ui.js中的numRows增加到6,但它只添加下个月而不是上个月的行,如下所示:

enter image description here

JSFiddle

请帮忙。谢谢!

2 个答案:

答案 0 :(得分:1)

尝试defaultDate选项:

DEMO

$(function () {
    var $datePicker = $("#datepicker");
    $datePicker.datepicker({
        defaultDate: "-34d",
        minDate: "-34",
        maxDate: "0",
        showOtherMonths: true,
        selectOtherMonths: true,
        onSelect: function (date) {
            alert(date + " selected");
        }
    });
    alert($datePicker.datepicker("getDate"));
});

呈现:

  

Screenshot of Date Picker defaulting to -34d

答案 1 :(得分:0)

终于明白了。感谢Palpatim对defaultDate的想法。

Datepicker功能:

$(function() {    
   $( "#datepicker" ).datepicker({
    minDate:"-34",
    defaultDate: "-34d",
    maxDate:"0",
    showOtherMonths: true,
    selectOtherMonths: true,
    onSelect: function(date) {
           alert(date);
        }
   });  
}); 

在jquery-ui.js中进行了两处更改

  1. 增加' numRows'到12。
  2. 注释updateDatePicker以防止重置datepicker。

    numRows = 12;

    // this._updateDatepicker(研究所);

  3. 然后删除不需要的行,如下所示:

        function doTheMagic(){
            $tr=$(".ui-datepicker-calendar tbody tr");
            for(i=0;i<$tr.length;i++){
    
                  $f=0;
                  $($tr[i]).find("td").each(function(f){
                  if($(this).attr("class").indexOf("disabled")<0)
                    {
                      $f=1;
                      return false;
                    }
                    });
    
                  if($f==0)
                    $($tr[i]).remove();
    
    
            }
    
            $("td[class=' ui-datepicker-unselectable ui-state-disabled '], td[class=' ui-datepicker-week-end ui-datepicker-unselectable ui-state-disabled '], td[class=' ui-datepicker-week-end ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled '], td[class=' ui-datepicker-other-month ui-datepicker-unselectable ui-state-disabled ']").each(
                  function(){$(this).empty();}
                );
        }
    

    我想要的是:

    enter image description here

    这里是JSFiddle