2016-03-03 89 views
0

如果值等於「Framingham」,我正在使用重力形式數據選取器並需要基於表單頂部的選擇字段禁用日期範圍。我很確定我需要銷燬日期選擇器,並在更改時重新初始化它,但我不完全確定。如果沒有選擇「Framingham」,那麼45天應該是30。這是據我可以得到:如何使用重力形式中的新過濾器重新初始化datepicker

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]; 

是從哪裏來的。任何幫助將超級讚賞!

回答

0

較不優雅但更簡單的解決方案可能是將兩個日期字段添加到您的表單。一個45天的帽子,另一個30天的帽子。然後,您可以使用Gravity Forms的條件邏輯根據您的下拉字段中選擇的值顯示/隱藏相應的日期字段。

如果你走這條路線,你可能也會對GP Limit Dates感興趣,這將允許你限制沒有任何自定義代碼的日期範圍。

+0

這裏有很好的邏輯。感謝您的輸入。 – FTSoR