Моя цель
Я пытаюсь исключить определенные даты из моего средства выбора даты, сделав их недоступными для кликов.
Переполнение стека заставило меня сделать это следующим образом: Пример кода, который я использовал (при переполнении стека)
Мой код:
var myDates = ["05-05-2019","06-05-2019","07-05-2019"]
$('.datepicker').datepicker({
beforeShowDay: function(date){
var string = jQuery.datepicker.formatDate('dd-mm-yyyy', date);
return [ myDates.indexOf(string) == -1 ]
}
});
Я следовал коду примера, и следующая ошибка продолжает появляться независимо от моих действий, пытающихся решить проблему:
TypeError: jQuery.datepicker is undefined
Ожидаемый результат:
Появляется средство выбора даты и продолжает блокировать три дня, которые я указал в своем myDates.
Дополнительная информация:
Датапикер уже появляется. Итак, датапикер должен работать правильно. Та часть, где я думаю, что что-то пойдет не так, должна быть в этой строке: jQuery.datepicker.formatDate.
Я искал по всему Интернету и, похоже, не нашел никого с такой же проблемой, как у меня. Если бы вы могли помочь мне выяснить, где что-то идет не так, это было бы очень признательно. Я знаю, что вопрос может показаться простым. Я озадачен тем, почему это не работает.
@ZainulAbideen при первом вызове datepicker работает, так что я так думаю, да
Я понятия не имею, в чем здесь проблема, в примере «Пример кода, который я использовал», он работает без проблем...
@ golddragon007 Ну, вот почему я так сбит с толку. Есть и другие способы, но они требуют гораздо больше кода.
попробуйте $.datepicker.formatDate вместо jQuery.datepicker.formatDate
@ Рой TypeError: $.datepicker is undefined к сожалению
@Marty, похоже, «Пример кода, который я использовал», работает нормально.
@MayankPatel, вот почему я так запутался, почему это не работает в моем проекте.
может вам не хватает jquery-ui.min.js?
В каком порядке вы включали свои сценарии? должно быть: 1. jquery 2.jquery-ui
@ Рой Я импортировал jquery-ui, я уверен
Лучший вариант — отредактировать пост и добавить весь код, который у вас есть.
@ Рой, я ценю тебя! Но я не думаю, что это возможно, так как я работаю над гигантским проектом. У меня есть '/js/jquery-ui.custom.min' в моем файле по умолчанию
@Marty Как ты называешь свой код? Когда он будет исполнен?
@golddragon007 Я называю это под html между <script> тегами
Э-э-э, я не уверен, что это хорошо, поместите это в голову или тело и используйте $(window).load() или $(document).ready(). Или хотя бы внутри торца кузова без каких-либо дополнительных вещей.
Если вы не покажете нам проблему на месте, мы не сможем вам помочь, рабочий пример работает...
@golddragon007 Прошу прощения за мою ошибку, и она в $(document).ready(function ()
@Marty Марти, я думаю, у тебя конфликт сценариев. Потому что даже с самым плохим кодом это работает. Итак, я предполагаю, что у вас есть загруженный скрипт (сторонний или пользовательский), который портит этот указатель даты (или вы перезагружаете в какой-то момент библиотеку jquery). Попробуйте удалить скрипты один за другим, и когда он вдруг начнет работать, проблема в этом скрипте. У меня была аналогичная проблема с colorbox, DOM обрабатывался, но не работал... Просто убедитесь, что вы очищаете кеш (включая браузеры или используете жесткое обновление) каждый раз, когда пытаетесь, чтобы убедиться, что вы не загружаете предыдущая версия сайта.
@ golddragon007 Думаю, проблема в этом. Довольно мой бутстрап. Я найду способ обойти это. спасибо мой парень



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Мое решение существует для решения проблемы.
Я поместил все свои array данные в object и сделал так:
$('.datepicker').datepicker({
dateFormat: "dd/mm/yy",
beforeShowDay: function (date) {
var day = date.getDate();
var month = date.getMonth() + 1;
var year = date.getFullYear();
var fullDate = day + '-' + month + '-' + year;
var bDisable = dates.indexOf(fullDate);
if (bDisable >= 0) {
return false;
}
}
});
Вы уверены, что датапикер js правильно связан?