I recently designed a website using WordPress and the Paradise Hotel theme but when it came to creating the reservations form, datepicker would not work with either Contact Form 7, we immediately tried Gravity Forms but still no dice, when we checked we were getting a JavaScript error:
DatePicker – TypeError: Object [object Object] has no method ‘datepicker’
We contacted Gravity Forms and they asked us to see if the problem occurred with one of the pre-installed themes – it did not – they then used this reasoning to immediately wash their hands of us, touting an issue with the theme so we would have to contact the theme support.
The file being referenced in the error was the Gravity Forms datepicker initialisation script at wp-contentpluginsgravityformsjsdatepicker.js which contained the following:
jQuery(document).ready(gformInitDatepicker); function gformInitDatepicker(){ jQuery('.datepicker').each( function (){ var element = jQuery(this); var format = "mm/dd/yy"; if(element.hasClass("mdy")) format = "mm/dd/yy"; else if(element.hasClass("dmy")) format = "dd/mm/yy"; else if(element.hasClass("dmy_dash")) format = "dd-mm-yy"; else if(element.hasClass("dmy_dot")) format = "dd.mm.yy"; else if(element.hasClass("ymd_slash")) format = "yy/mm/dd"; else if(element.hasClass("ymd_dash")) format = "yy-mm-dd"; else if(element.hasClass("ymd_dot")) format = "yy.mm.dd"; var image = ""; var showOn = "focus"; if(element.hasClass("datepicker_with_icon")){ showOn = "both"; image = jQuery('#gforms_calendar_icon_' + this.id).val(); } element.datepicker({ yearRange: '-100:+20', showOn: showOn, buttonImage: image, buttonImageOnly: true, dateFormat: format, changeMonth: true, changeYear: true }); });}
Looking at it, it’s simply a pimped initialization script so we replaced it with something much simpler:
jQuery(document).ready(function($) { $( ".datepicker" ).datepicker({ dateFormat: 'dd-M-yy' }); });
And hey presto, we’re back in business.
To my mind this makes indicates this is an issue with Gravity Forms but there you go, hopefully this will help someone else.