BeforeShowDay在datepicker中没有改变

时间:2017-01-02 10:51:22

标签: javascript jquery datepicker jquery-ui-datepicker

我有一个函数禁用datepicker中显示日期之前的特定日期,但是我有一个错误:当我第一次调用我的函数时它有效,但在第二次调用时我仍然有第一个结果。 例如,在第一次通话时,我已经禁用星期天,当我再次呼叫该功能时,我也禁用星期天。 我发现错误在BeforShowDay中使用的变量中,但仍未在datepicker内部更改,但在每次调用中外部都是更改者。

这是我的代码:

function loadFreeDays (etablissement) {
  var array=[];
  $.ajax({
    type: "POST",
    url: "/promo3/etablissments/getFreeDays/"+etablissement,
    data:  {'etablissement': etablissement } ,
    dataType: 'json',
    success: function(response){
      $.each(response, function(i, value) {
        array.push(value);
      }),  

      /*console.log(" diasbled days are "+array); here variable still is changed  */ 

      $('#datepicker').datepicker({
        beforeShowDay: function(date){
          /* here array variable still not changed */
          for (i = 0; i < array.length; i++) {

            if (date.getDay() == array[i][0]) {
              return [false];
            }
          }
          var string = jQuery.datepicker.formatDate('d-m-yy', date); 
          var day = date.getDay(); 
          return [true, '']; 
        }
      });

    },
    error: function(x, e) { }
  });
}

1 个答案:

答案 0 :(得分:0)

我通过在ajax函数之前整理$('#txtDate').datepicker("destroy");来解决问题。 它现在有效。