У меня есть датпикер, который отключил все прошлые дни, и все дни, кроме вторников и средов, были отключены.
Я бы хотел, чтобы день по умолчанию был днем, включенным frist. Если это вторник, тогда он должен отображать вторник, Если среда, затем среда. В любой другой день он должен отображать следующий вторник в поле ввода.
Это код, который я использую для datepicker.
<script type="text/javascript"> $(document).ready(function(){ $( ".datepicker" ).datepicker({ minDate:'0', changeMonth:true, changeYear:true, beforeShowDay: function(dt) { return [dt.getDay() === 2 || dt.getDay() === 3, ""]; }}); }); </script>
И ввод, который я использую селектор:
<form method="POST"> <div style='margin:0 auto; text-align:center;'> <label>Appointment Date: </label> <input type="hidden" name="action" value="list_appointments" /> <input type="text" id="datepicker" name="date" class="datepicker" /> <!--value=--><?php #echo date_format(new DateTime("now",new DateTimeZone('America/Chicago')),'m/d/Y');?> <input type="submit" value="Refresh List" name="Update" /> <br /> </div> </form>
Вы можете использовать momentjs, чтобы упростить получение следующего дня недели, а затем просто иметь инструкцию if-else, чтобы получить правильный день недели:
function setDate() { var today = moment().isoWeekday(); //or just = new Date().getDay(); if (today <= 2) { return moment().isoWeekday(2); } else if (today === 3) { return moment().isoWeekday(3); } else { return moment().add(1, 'weeks').isoWeekday(2); } }
setDate()
функцию setDate()
и установите это возвращаемое значение как дату в datepicker.
$('.datepicker').datepicker("setDate", new Date(setDate()));
Вот рабочий пример: https://jsfiddle.net/jutcw0ve/