【问题标题】:How to disable a specific day in Datepicker ? (Gravity Forms)如何在 Datepicker 中禁用特定日期? (重力形式)
【发布时间】:2017-08-07 19:04:45
【问题描述】:

我在 WordPress 上使用 Gravity Forms 插件,其中包括 jQuery 的 datepicker。在我的一个表单中,我定义了一个 minDate 和一个 maxDate,但是在这个日期数组中,我需要禁用一个特定的日期(即 4 月 23 日星期日)。

我找到了使用 noWeekend 功能禁用整个周末的方法,但问题是:我需要保持星期六 22 可用!

这是我现在使用的代码:

<script type="text/javascript">
gform.addFilter( 'gform_datepicker_options_pre_init', function( optionsObj, formId, fieldId ) {
    if ( formId == 2 && fieldId == 4 ) {
    optionsObj.minDate = '17/04/2017';
    optionsObj.maxDate = '29/04/2017';
}

return optionsObj;
} );
</script>

知道我可以添加什么来禁用 23/04/2017 作为选择吗?

感谢你们即将到来的帮助!

【问题讨论】:

    标签: javascript jquery wordpress datepicker


    【解决方案1】:

    我相信您正在寻找这样的东西。请注意 beforeShowDay 的“过滤器”功能,它为日历中显示的每个日期处理布尔值 true 或 false 以将其显示为可用或不可用。我为您检查的日期使用了一个数组,以防您将来需要测试多个日期。

    gform.addFilter( 'gform_datepicker_options_pre_init', function( optionsObj, formId, fieldId ) {
        if ( formId == 2 && fieldId == 4 ) {
          optionsObj.minDate = '17/04/2017';
          optionsObj.maxDate = '29/04/2017';
    
          optionsObj.beforeShowDay: function(date){
            var array = ["2017-04-23"];
            var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
            return [ array.indexOf(string) == -1 ];
          }
        }
    
    return optionsObj;
    } );
    

    【讨论】:

    • 感谢您的回答伙伴,但这似乎并没有解决问题。相反,它就像它“取消”了以前的代码,整个事情又回到了它的标准设置(现在可以选择日历上的每个日期:每一天都恢复可用,包括过去的日期)。注意:我的编码技巧很菜,也许我做错了什么,但老实说,我只是复制了你的新代码并将其粘贴到旧代码下面。
    • 你有没有可以分享的链接?或者失败了,当你按 F11 时,是否有任何控制台 JavaScript 错误,转到控制台选项卡?
    【解决方案2】:

    用于删除周末。

    jQuery(document).ready(function(){
    gform.addFilter( 'gform_datepicker_options_pre_init', function( optionsObj, formId, fieldId ) {
      if ( (formId == 2 && fieldId == 4)) {
            optionsObj.firstDay = 1;
            optionsObj.minDate = 0;
            optionsObj.beforeShowDay = jQuery.datepicker.noWeekends;
            optionsObj.changeMonth = false;
            optionsObj.changeYear = false; 
      }
      return optionsObj;
      
     });
    });
    

    【讨论】:

    • 这只会删除周末,这是 OP 特别不希望的 - 他们只想删除一天。
    猜你喜欢
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多