нужно отключить праздники и день в форме выбора даты 7 - PullRequest
0 голосов
/ 31 декабря 2018

Я видел много решений, но не могу отключить воскресный понедельник и праздничные дни в моей контактной форме.

Ответы [ 4 ]

0 голосов
/ 05 января 2019

получил ответ ....

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>

Необходимо удалить вышеуказанный скрипт, нужно включить jquery только один раз .... добавив вышеуказанный скрипт вместе с

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.js"></script>

make$ (...). datepicker null.

0 голосов
/ 31 декабря 2018

вы можете заменить свой скрипт этим .. и добавить свой список выходных в переменную removeDays.

function disabledays(date) {
    var ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
        //if u have to disable a list of day
         var removeDays = ["2013-6-11","2013-6-31" ];
         if ($.inArray(ymd, removeDays) >= 0) {
        return [false];
    } else {
        //Show accept sundays
        var day = date.getDay();
        return [(day == 1 || day == 2 || day == 3 || day == 4 ||day == 5 ||day == 6 )];
    }
}

$(function () {
    $('#datepicker').datepicker({
        beforeShowDay: disabledays
    });
});

Если все еще не работает, поделитесь ошибкой консоли.

0 голосов
/ 01 января 2019

Возможный дубликат: Как установить maxDate в последний день декабря текущего года?

Рассмотрим следующий код:

$(function() {
  var holidays = {
    2019: {
      1: {
        1: [
          false,
          "holiday",
          "New Year's Day"
        ],
        21: [
          false,
          "holiday",
          "Martin Luther King Jr. Day"
        ]
      },
      2: {
        18: [
          false,
          "holiday",
          "Presidents' Day"
        ]
      },
      5: {
        27: [
          false,
          "holiday",
          "Memorial Day"
        ]
      },
      7: {
        4: [
          false,
          "holiday",
          "Independence Day"
        ]
      },
      9: {
        2: [
          false,
          "holiday",
          "Labor Day"
        ]
      },
      10: {
        14: [
          false,
          "holiday",
          "Columbus Day"
        ]
      },
      11: {
        11: [
          false,
          "holiday",
          "Veterans Day"
        ],
        28: [
          false,
          "holiday",
          "Thanksgiving Day"
        ]
      },
      12: {
        25: [
          false,
          "holiday",
          "Christmas Day"
        ],
        31: [
          false,
          "holiday",
          "New Year's Eve"
        ]
      }
    }
  };

  $("#datepicker").datepicker({
    beforeShowDay: function(date) {
      var result = [true, ""];
      var yr = $.datepicker.formatDate("yy", date),
        mo = $.datepicker.formatDate("m", date),
        dy = $.datepicker.formatDate("d", date);
      if (date.getDay() == 0 || date.getDay() == 1) {
        result[0] = false;
      }
      if (holidays[yr] !== undefined) {
        if (holidays[yr][mo] !== undefined) {
          if (holidays[yr][mo][dy] !== undefined) {
            console.log("Holiday: " + mo + "/" + dy + "/" + yr);
            result = holidays[yr][mo][dy];
          }
        }
      }
      return result;
    }
  });
});
table.ui-datepicker-calendar tbody td.holiday span {
  border: 1px solid #222;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

<label><span style="color: #000080;"><strong>Your Appointment Date</strong></span>(required)</label><input type="text" id="datepicker">

Поскольку вы не указали, какие праздничные дни вам нужны, я скопировал старый код, который у меня был, для другого ответа.Это сложнее, чем нужно.Вы можете просто иметь массив или даты.

В beforeShowDay мы предполагаем, что все дни будут [true, ""].Таким образом, всегда есть что вернуть.Затем мы проверяем каждый день, ища день недели, равный 0 или 1 (воскресенье или понедельник), или ищем день, который был определен как выходной.Затем мы обновляем наш массив результатов и возвращаем его.

Обновление

В своем коде WP вы захотите убедиться, что вы создаете ввод текста, а не ввод даты,Также все идентификаторы должны быть уникальными, поэтому, если у вас есть другие datepicker идентификаторы, вы должны рассмотреть возможность их изменения.

Создание средства выбора даты на <input type="date"> не поддерживается из-за конфликта пользовательского интерфейса с собственнымподборщика.

Я бы посоветовал следующее:

<label> <span style="color: #000080;"><strong>Your Appointment Date</strong></span>(required)</label>[text* date-163 id:datepicker]

Надеюсь, это поможет.

0 голосов
/ 31 декабря 2018

Сначала вам нужно подготовить множество праздников, а затем попробуйте этот.

var holidays = ["2014-02-27","2014-02-01"];
$( "#from" ).datepicker({
beforeShowDay: function(date){
    var datestring = jQuery.datepicker.formatDate('yy-mm-dd', date);
    return [ holidays.indexOf(datestring) == -1 ]
}
});
...