【问题标题】:How To Reinitialize datepicker with new filter in Gravity Forms如何使用重力形式中的新过滤器重新初始化日期选择器
【发布时间】:2016-03-03 21:53:14
【问题描述】:

我正在使用重力表单数据选择器,如果值等于“Framingham”,则需要禁用基于表单顶部选择字段的日期范围。我很确定我需要销毁日期选择器并在更改时重新初始化它,但我并不完全确定。如果未选择“Framingham”,则 45 天应改为 30。这是我所能得到的:

jQuery(function(){
        jQuery('#input_3_23').on('change', function(){
            if(jQuery(this).val() == 'Framingham'){

                for(var i=0; i<45; i++){ 
                      var day=new Date(year, month, date + i);
                      disabledDays.push(("0" + (day.getMonth() + 1)).slice(-2) + '/' + ("0" + day.getDate()).slice(-2) + '/' +  day.getFullYear()   );
                }

                gform.addFilter( 'gform_datepicker_options_pre_init', function( optionsObj, formId, fieldId ) {
                    if (formId == 3 && fieldId == 14 || formId == 3 && fieldId == 15 || formId == 3 && fieldId == 16) {
                        optionsObj.minDate = 0;

                        optionsObj.beforeShowDay = function(date) {
                            var checkdate = jQuery.datepicker.formatDate('mm/dd/yy', date);
                            return [disabledDays.indexOf(checkdate) == -1];
                        };
                    }
                return optionsObj;

                });
            }
        });
    });

我还有一个用户可选择的 disableDays 数组,这是

return [disabledDays.indexOf(checkdate) == -1];

来自。任何帮助将不胜感激!

【问题讨论】:

    标签: jquery datepicker gravity-forms-plugin


    【解决方案1】:

    一个不太优雅但更简单的解决方案可能是在表单中添加两个日期字段。一个有 45 天的上限,另一个有 30 天的上限。然后,您可以使用 Gravity Forms 的条件逻辑根据您在下拉字段中选择的值显示/隐藏相应的日期字段。

    如果您走这条路,您可能还会对GP Limit Dates 感兴趣,它允许您在没有任何自定义代码的情况下限制日期范围。

    【讨论】:

    • 这里的逻辑很好。感谢您的意见。
    猜你喜欢
    • 2015-02-02
    • 1970-01-01
    • 2014-06-28
    • 1970-01-01
    • 2017-08-20
    • 2015-09-14
    • 2014-09-12
    • 2014-08-10
    • 2017-06-28
    相关资源
    最近更新 更多