jQuery UI Datepicker условный беспорядок .. Есть ли более чистый способ сделать это? - PullRequest
0 голосов
/ 02 февраля 2012

Я настраиваю что-то вроде планировщика встреч, используя jQuery UI Datepicker , но у меня есть несколько условий, которые мне нужно было выполнить:

  • Клиент можетне запланировано на воскресенье
  • Клиент не может назначить расписание после 12:00 субботы (не выполнили это)
  • Невозможно запланировать на следующий день , если текущее время прошло12:00
  • Невозможно массово запланировать заранее (я выбрал +2 месяца)
  • Невозможно запланировать на текущий день (и, очевидно, не в прошлом)

Вот мой текущий код:

$(document).ready(function() {
    function noSundays(date) {
        return [date.getDay() != 0, ''];
    }
    var timezone = "EST";
    $.getJSON("http://json-time.appspot.com/time.json?tz="+timezone+"&callback=?",
    function(data){
        if (data.hour < 12) {
            $("#datepicker").datepicker({ 
            beforeShowDay: noSundays,
            minDate: '+1d',
            maxDate: '+2m' });
        } else {
            $("#datepicker").datepicker({ 
            beforeShowDay: noSundays,
            minDate: '+2d',
            maxDate: '+2m' });
        }
    })
});

Таким образом, мы устанавливаем noSundays, получаем текущее время в EST с сервера JSON, и, если это до 12:00, мы запускаем .datepicker с minDate: + 1d (завтра)если это после 12 вечера, мы используем minDate: + 2d.Этот код работает , но я чувствую, что делаю что-то действительно неправильно.Я все еще относительно неопытен и хотел бы знать, есть ли лучший способ написать это.

Спасибо.

1 Ответ

1 голос
/ 02 февраля 2012

Это может быть короче, как это

$(document).ready(function() {
    var timezone = "EST";
    $.getJSON("http://json-time.appspot.com/time.json?tz="+timezone+"&callback=?",
      function(data){
        var parms = { 
          beforeShowDay: function(date) {
            return [date.getDay() != 0, ''];
          },
          minDate: '+2d',
          maxDate: '+2m' }
        if (data.hour < 12) {
          parms.minDate= '+1d';
          parms.maxDate= '+2m';
        }
        $("#datepicker").datepicker(parms);
      })
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...