0

У меня есть jQuery UI datepicker, на котором я хочу, чтобы даты были доступны только 5 дней (или более). Это прекрасно работает для этого:Как изменить параметры датпикера на основе флажка?

var dateToday = new Date(); 
$("#datepicker").datepicker({ 
    minDate: '+1w', // your min date 
    beforeShowDay: $.datepicker.noWeekends // disable weekends 
}); 

У меня также есть флажок, что если проверено, по существу, перекрывает minDate и делает minDate доступны сегодня дату (а не через неделю из):

<input type="checkbox" class="lessThanFiveDays" value="1" name="less-than-5-days" />I need this earlier than the standard 5 business days 

Я боюсь, где должен быть установлен флажок проверки jQuery и в каком порядке. Кроме того, я просто проверяю, установлен ли флажок, или нужно ли изменять параметры datepicker в событии «change» при этом флажке?

Это ниже неправильно, но мы надеемся, что это помогает проиллюстрировать, как я путаю себя:

$("#datepicker").datepicker({ 
    minDate: '+1w', // your min date 
    beforeShowDay: $.datepicker.noWeekends // disable weekends*/ 
}); 
$('.lessThanFiveDays').change(function() { 
    if($(this).is(":checked")) { 
     $("#datepicker").datepicker({ 
      minDate: dateToday, // your min date 
      beforeShowDay: $.datepicker.noWeekends // disable weekends*/ 
     }); 
    } 
}); 

ответ

2

Вам не нужно повторно инициализировать DatePicker, вы можете просто использовать minDate функции в обработчике изменений флажка.

Вот рабочий пример:

var dateToday = new Date(); 
 
$("#datepicker").datepicker({ 
 
    minDate: '+1w', 
 
    beforeShowDay: $.datepicker.noWeekends 
 
}); 
 
$('.lessThanFiveDays').change(function() { 
 
    if($(this).is(":checked")) { 
 
    $("#datepicker").datepicker("option", "minDate", dateToday); 
 
    } else { 
 
    $("#datepicker").datepicker("option", "minDate", '+1w'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/jquery-ui.css" rel="stylesheet"/> 
 

 
<input type="text" id="datepicker"> 
 
<input type="checkbox" class="lessThanFiveDays" value="1" name="less-than-5-days" />I need this earlier than the standard 5 business days

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