2015-08-02 3 views
0

Я хочу, чтобы отключить все понедельники в моем календаре JQuery, и я использую этот код:отключить определенные дни в JQuery UI DatePicker

function DisableMonday(date) { 
    alert(date); 
    var day = date.getDay(); 
    if (day == 1) { 
     return [false] ; 
    } 
    else { 
     return [true] ; 
    } 
} 

jQuery(document).ready(function(){ 
    alert('test'); 
    jQuery('.datepicker').datepicker({     
     beforeShowDay: DisableMonday() 

    }); 
}); 

моя проблема, кажется, что (date) переменных в DisableMonday() функции не определен ... как я могу решить эту проблему

+0

Вы вызываете функцию без значения и передаете ее возвращаемое значение для 'beforeShowDay'. Вместо этого вы должны передать эту функцию (т. Е. 'BeforeShowDay: DisableMonday') –

ответ

1

Вы пробовали это? Без использования отдельного метода

$(".datepicker").datepicker({ 
    beforeShowDay: function(date) { 
     var day = date.getDay(); 
     return [(day != 1)]; 
    } 
}); 
1

Согласно jQueryUI's Datepicker API,

enter image description here


Просто удалите скобки () после DisableMonday функции:

Заменить:

jQuery('.datepicker').datepicker({     
    beforeShowDay: DisableMonday() 
}); 

By:

jQuery('.datepicker').datepicker({     
    beforeShowDay: DisableMonday 
}); 

И он будет работать, посмотрите на Working fiddle.

Смежные вопросы