Блокировка выбора даты в прошлом. Взято [URL=https://capyba.ru/blog/modifikatsiya-kalendarya-bitriks/]тут[/URL].
[I]Внимание, не забудьте удалить пробелы, которые вставляются автоматом в это сообщение.[/I][CODE]<sc ript>
function changeCalendar() {
var el = $('[id ^= "calendar_popup_"]'); //найдем div с календарем
var links = el.find(".bx-calendar-cell"); //найдем элементы отображающие дни
$('.bx-calendar-left-arrow').attr({'onclick': 'changeCalendar();',}); //вешаем функцию изменения календаря на кнопку смещения календаря на месяц назад
$('.bx-calendar-right-arrow').attr({'onclick': 'changeCalendar();',}); //вешаем функцию изменения календаря на кнопку смещения календаря на месяц вперед
$('.bx-calendar-top-month').attr({'onclick': 'changeMonth();',}); //вешаем функцию изменения календаря на кнопку выбора месяца
$('.bx-calendar-top-year').attr({'onclick': 'changeYear();',}); //вешаем функцию изменения календаря на кнопку выбора года
var date = new Date();
for (var i =0; i < links.length; i++)
{
var atrDate = links[i].attributes['data-date'].value;
var d = date.valueOf();
var g = links[i].innerHTML;
if (date - atrDate > 24*60*60*1000) {
$('[data-date="' + atrDate +'"]').addClass("bx-calendar-date-hidden disabled"); //меняем класс у элемента отображающего день, который меньше по дате чем текущий день
}
}
}
function changeMonth() {
var el = $('[id ^= "calendar_popup_month_"]'); //найдем div с календарем
var links = el.find(".bx-calendar-month");
for (var i =0; i < links.length; i++) {
var func = links[i].attributes['onclick'].value;
$('[oncl ick="' + func +'"]').attr({'onclick': func + '; changeCalendar();',}); //повесим событие на выбор месяца
}
}
function changeYear() {
var el = $('[id ^= "calendar_popup_year_"]'); //найдем div с календарем
var link = el.find(".bx-calendar-year-input");
var func2 = link[0].attributes['onkeyup'].value;
$('[onke yup="' + func2 +'"]').attr({'onkeyup': func2 + '; changeCalendar();',}); //повесим событие на ввод года
var links = el.find(".bx-calendar-year-number");
for (var i =0; i < links.length; i++) {
var func = links[i].attributes['onclick'].value;
$('[oncl ick="' + func +'"]').attr({'onclick': func + '; changeCalendar();',}); //повесим событие на выбор года
}
}
</sc ript>
<st yle>
.bx-calendar-range .disabled{
pointer-events: none;
}
</style>
[/CODE]
[I]Внимание, не забудьте удалить пробелы, которые вставляются автоматом в это сообщение.[/I][CODE]<sc ript>
function changeCalendar() {
var el = $('[id ^= "calendar_popup_"]'); //найдем div с календарем
var links = el.find(".bx-calendar-cell"); //найдем элементы отображающие дни
$('.bx-calendar-left-arrow').attr({'onclick': 'changeCalendar();',}); //вешаем функцию изменения календаря на кнопку смещения календаря на месяц назад
$('.bx-calendar-right-arrow').attr({'onclick': 'changeCalendar();',}); //вешаем функцию изменения календаря на кнопку смещения календаря на месяц вперед
$('.bx-calendar-top-month').attr({'onclick': 'changeMonth();',}); //вешаем функцию изменения календаря на кнопку выбора месяца
$('.bx-calendar-top-year').attr({'onclick': 'changeYear();',}); //вешаем функцию изменения календаря на кнопку выбора года
var date = new Date();
for (var i =0; i < links.length; i++)
{
var atrDate = links[i].attributes['data-date'].value;
var d = date.valueOf();
var g = links[i].innerHTML;
if (date - atrDate > 24*60*60*1000) {
$('[data-date="' + atrDate +'"]').addClass("bx-calendar-date-hidden disabled"); //меняем класс у элемента отображающего день, который меньше по дате чем текущий день
}
}
}
function changeMonth() {
var el = $('[id ^= "calendar_popup_month_"]'); //найдем div с календарем
var links = el.find(".bx-calendar-month");
for (var i =0; i < links.length; i++) {
var func = links[i].attributes['onclick'].value;
$('[oncl ick="' + func +'"]').attr({'onclick': func + '; changeCalendar();',}); //повесим событие на выбор месяца
}
}
function changeYear() {
var el = $('[id ^= "calendar_popup_year_"]'); //найдем div с календарем
var link = el.find(".bx-calendar-year-input");
var func2 = link[0].attributes['onkeyup'].value;
$('[onke yup="' + func2 +'"]').attr({'onkeyup': func2 + '; changeCalendar();',}); //повесим событие на ввод года
var links = el.find(".bx-calendar-year-number");
for (var i =0; i < links.length; i++) {
var func = links[i].attributes['onclick'].value;
$('[oncl ick="' + func +'"]').attr({'onclick': func + '; changeCalendar();',}); //повесим событие на выбор года
}
}
</sc ript>
<st yle>
.bx-calendar-range .disabled{
pointer-events: none;
}
</style>
[/CODE]