根据选择禁用jQuery Date Picker中的日期

Posted

技术标签:

【中文标题】根据选择禁用jQuery Date Picker中的日期【英文标题】:Disabling dates in jQuery Date Picker based on selection 【发布时间】:2015-12-30 20:04:12 【问题描述】:

我有一个日期选择器,它包含在以下代码中:

<input type="text" class="input-text hasDatepicker" name="myfld1" id="myfld1" placeholder="Select the delivery date" value="">

我有另一个名为 Days with Monday 和 Wednesday 的选择字段,代码如下:

<select name="myfield2" id="myfield2" class="select ">
<option value="" selected="selected">Select    below</option>
<option value="Mondays">Mondays</option>
<option value="Wednesdays">Wednesdays</option>
</select>

我试图实现的是,当周一被选中时,日期选择器只能在周一和周三类似地显示日期。

下面是我正在使用的 jQuery 代码:

 deliverydate = 
    init: function () 
        jQuery('#myfld1').datepicker("option", "minDate", +1);
        jQuery('#myfld1').datepicker("option", "beforeShowDay", this.disabledays);
    ,
    disabledays: function (date) 
        return [(date.getDay() == jQuery('#myfield2').val())];
    
;

deliverydate.init(),
        b.init(),
        c.init(),
        d.init()

【问题讨论】:

【参考方案1】:

下面的代码完成了工作:

标记

<p>Date:
    <input type="text" name="myfld1" id="myfld1" placeholder="Select the delivery date" value="">
</p>
<select name="myfield2" id="myfield2">
    <option value="" selected="selected">Select below</option>
    <option value="1">Mondays</option>
    <option value="3">Wednesdays</option>
</select>

jQuery/javascript

 $(document).ready(function () 
     $('#myfld1').datepicker(
         beforeShowDay: function() 
             return [false];
         
     );
     $("#myfield2").on('change', function() 
         var showDayOn = this.value;
         $('#myfld1').datepicker('option', 'beforeShowDay', function (date) 
             return [date.getDay() == showDayOn];
         );
     );
 );

直播

Fiddle

【讨论】:

以上是关于根据选择禁用jQuery Date Picker中的日期的主要内容,如果未能解决你的问题,请参考以下文章

vue element 时间选择器设置禁用日期

如何使用 date-picker bootstrap4 插件禁用每月 26 日至 30 日以及每个月的星期日

element ui 中的时间选择器,禁用今天以前的时间

VUEel-date-picker日期选择器根据后台返回数据回显

Date Range Picker时间插件非常不错,主要体现在选择一个时间区间

如何禁用使用手表循环遍历数组的可用时间?