2017-06-29 32 views
0

サーバーから無効にする日数を追加しようとしています。これまでのコードです。Jquery UI Datepicker、beforeShowDayエラー

$("#startDatePicker").datepicker({ 
     minDate: '+31', 
     maxDate: '+12M', 
     changeMonth: true, 
     showAnim: 'blind', 
     dateFormat: 'yy mm dd',   
     onSelect: function(dateText, inst) { 

      // Capture the Date from User Selection 
      var oldDate = new Date(dateText); 
      var newDate = new Date(dateText); 

      // Compute the Future Limiting Date 
      newDate.setDate(newDate.getDate() + 365); 


      // Set the Widget Properties 
      $("#endDatePicker").datepicker('option', 'minDate', oldDate); 
      $("#endDatePickerto").datepicker('option', 'maxDate', newDate); 

     } 
    }); 

    $("#endDatePicker").datepicker({ 
     minDate: '+5', 
     maxDate: '+12M', 
     changeMonth: true, 
     showAnim: 'blind', 
     dateFormat: 'yy mm dd', 
     onSelect: function(dateText, inst) { 

      // Capture the Date from User Selection 
      var endDate = new Date(dateText); 
      var startDate = new Date(dateText); 

      // Compute the Future Limiting Date 
      startDate.setDate(startDate.getDate() - 5); 

      // Set the Widget Properties 
      $("#startDatePicker").datepicker('option', 'minDate', startDate); 
      $("#startDatePicker").datepicker('option', 'maxDate', endDate); 

     } 

    }); 

無効にする日数が追加されるまで、ピッカーはうまく動作します。私はビューバックからそれを解析します。ここにコードがあります。 enter image description here

を私が間違っているのは何:

var NewArray = []; 
var array = @Html.Raw(Json.Encode((@ViewBag.GetDates))); 
for (var i = 0; i < array.length; i++) { 
    NewArray[i] = array[i]; 
    console.log(NewArray); 

} 
var parsedDates = []; 
for (var i = 0; i < array.length; i++) { 
    var d = array[i]; 
    var unix = +d.replace(/\D/g, ''); 
    var date = new Date(unix); 
    var desDate = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + date.getDate(); 
    parsedDates.push(desDate); 
} 
console.log(parsedDates); 

と私はピッカーにこのような日付を追加:すべてが追加されたときに

beforeShowDay: function (date) { 
      var string = jQuery.datepicker.formatDate('yy mm dd', date); 
      return [parsedDates.indexOf(string) === -1]; 
     } 

ピッカーは次のようになります。

答えて

0

解決済みです。 beforShowDayに入る日付文字列を再構成しなければなりませんでした。その後、すべてがうまくいった。