简体   繁体   English

在 Javascript 日期选择器上阻止特定日期

[英]Block a specific date on a Javascript date selector

I would like to request assistance on how can I block a specific dates on my date selector.我想请求有关如何在我的日期选择器上阻止特定日期的帮助。

Specific dates are: December 24, 25, 30, 31 - 2020 and January 1, 2021 ONLY .具体日期为: 2020 年 12 月 24 日、25 日、30 日、31 日至2021年 1 月 1 日。

Note: We need to remain the current function where the selected available dates are 2 days advanced from today.注意:我们需要保留当前的 function,其中选定的可用日期比今天提前 2 天。 Weekends are also blocked.周末也被封锁。 This functions are already in the script此函数已在脚本中

<style>
select {
    font-family:Arial, Helvetica, sans-serif;
    font-size:14px; color:#000;
}
</style>

<select name="APPOINTMENTDATE" id="date-range" data-field-type="Text">
   <option value="" selected="selected">Select date</option>
</select>

<script>
    var dateRange = document.getElementById('date-range'),
    monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

    for(var day = 2; day < 30; day++) {
        var date = new Date();
        date.setDate(date.getDate() + day);
        if(!(date.getDay()==6|| date.getDay()==0))
            dateRange.options[dateRange.options.length] = new Option([monthNames[date.getMonth()], date.getDate(), date.getFullYear()].join(' '));
    }
</script>

You can do something like this.你可以做这样的事情。

var dateRange = document.getElementById('date-range'),
    monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

for (var day = 2; day < 30; day++) {
    var date = new Date();
    date.setDate(date.getDate() + day);

    if (!(date.getDay() == 6 || date.getDay() == 0)) {

        dateRange.options[dateRange.options.length] = new Option(
            [monthNames[date.getMonth()],
                date.getDate(),
                date.getFullYear()
            ].join(' '));
    }

}

//define dates to be blocked.
var arr = ["Dec 24 2020", "Dec 25 2020", "Dec 30 2020", "Dec 31 2020", "Jan 01 2021"];

//loop through dateRange.options
for (var i = 1; i < dateRange.options.length; i++) {    
    //when date to be blocked found, mark it as disabled
    arr.includes(dateRange.options[i].value) ? dateRange.options[i].disabled = true : dateRange.options[i].disabled = false;


}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM