2016-04-14 75 views
0

對不起,發佈這個簡單的問題。應用程序將很快部署,最近出現了一個錯誤,但我無法弄清楚它爲什麼會來。minDate:0在Jquery DatePicker中也禁用今天的日期

創建JS_BIN這是鏈接

http://jsbin.com/razufavuru/1/edit?html,js,output

錯誤是的minDate:0被禁用今天的日期也同時我想禁用只有過去的日期。

這是jQuery代碼:

$("#leaveEndDate").datepicker(
    { 
     minDate: 0, 
     beforeShowDay : disablePublicHolidaysAndWeekends, 
     minDate : dateToday, 
     onSelect : function(dateText, inst) { 
      var firstDate = $("#leaveStartDate").datepicker('getDate'); 
      var selDate = null; 
      selDate = $(this).datepicker('getDate'); 
      var lastDate = selDate; 

      if (lastDate < firstDate) { 
       $("#leaveEndDate").val(''); 
       $("#endDateError").html(
         "End Date must be greater than Start Date"); 
       $(inst).datepicker('show'); 
      } else { 
       $("#endDateError").html(""); 
       calculateDays(firstDate, lastDate); 
      } 

     } 
    }); 

禁用假日和週末方法是

function disablePublicHolidaysAndWeekends(date) { 
var month = date.getMonth(); 
var day = date.getDate(); 
var year = date.getFullYear(); 
if(day < 10 && day > 0){ 
    day = '0'+day; 
} 
var getdate = year+ '/' + '0' +(month + 1) + '/' + day; 
for (var i = 0; i < publicHolidayDates.length; i++) { 
    if ($.inArray(getdate ,publicHolidayDates) != -1 || new Date() > date) { 
     return [ false ]; 
    } 
} 

var noWeekend = $.datepicker.noWeekends(date); 

return !noWeekend[0] ? noWeekend : [ true ]; 

}

這是IMG

enter image description here

公共假日從數據庫中來。

當這個代碼適用於另一個數據分析器時,它讓我很困惑。

$("#targetDate").datepicker({ 
    beforeShowDay : $.datepicker.noWeekends, 
    minDate : 0 
}); 

這裏它不禁止今天的日期。 這是IMG

enter image description here

+0

可能重複? - http://stackoverflow.com/questions/16059192/jquery-ui-datepicker-disable-current-date-but-not-the-highlight – deeveeABC

+0

不,我不想禁用當前日期 –

回答

1

jQuery的日期選擇器值minDate期望的值類型

類型:日期或數字或字符串

嘗試minDate: new Date()代替,或minDate: '0'

更新:

是什麼原因導致你的問題是你的自定義函數:

function disablePublicHolidaysAndWeekends(date) { 
    var month = date.getMonth(); 
    var day = date.getDate(); 
    var year = date.getFullYear(); 
    if(day < 10 && day > 0){ 
     day = '0'+day; 
    } 
    if(month < 9 && month > 0){ //added control over month, as you would have got errors for month=10, 11, 12 in the below variable getdate 
    month = '0' +(month + 1); 
    } 
    else{ 
    month += 1; 
    } 
    var getdate = year+ '/' + month + '/' + day; 
    for (var i = 0; i < publicHolidayDates.length; i++) { 
     //removed "|| new Date() > date" 
     if ($.inArray(getdate ,publicHolidayDates) !== -1) { 
      return [ false ]; 
     } 
    } 

    var noWeekend = $.datepicker.noWeekends(date); 

    return !noWeekend[0] ? noWeekend : [ true ]; 
} 

閱讀本關於Date comparison in javascript Fiddle here

+0

試過這個也不工作 –

+0

你可以在小提琴中複製你的錯誤嗎? – Yuri

+0

好吧,我會創建它 –

相關問題