diff --git a/core/misc/date.js b/core/misc/date.js index 75f446b..4e5e901 100644 --- a/core/misc/date.js +++ b/core/misc/date.js @@ -16,37 +16,38 @@ */ attach: function (context, settings) { var $context = $(context); - // Only act if the browser doesn't support date input type. - if (Modernizr.inputtypes.date === false) { - $context.find('input[data-drupal-date-format]').each(function() { - var datepickerSettings = {}, dateFormat; - dateFormat = $(this).data('drupalDateFormat'); - // The date format is saved in PHP style, we need to convert to jQery - // datepicker. - dateFormat = dateFormat - .replace('Y', 'yy') - .replace('m', 'mm') - .replace('d', 'dd'); - datepickerSettings.dateFormat = dateFormat; - // Add min and max date if set on the input. - if ($(this).attr('min')) { - datepickerSettings.minDate = $(this).attr('min'); - } - if ($(this).attr('max')) { - datepickerSettings.maxDate = $(this).attr('max'); - } - $(this).datepicker(datepickerSettings); - }); + // Skip if date are supported by the browser. + if (Modernizr.inputtypes.date === true) { + return; } + $context.find('input[data-drupal-date-format]').not('.hasDatepicker').each(function() { + var $input = $(this), + datepickerSettings = {}, + dateFormat; + dateFormat = $(this).data('drupalDateFormat'); + // The date format is saved in PHP style, we need to convert to jQuery + // datepicker. + dateFormat = dateFormat + .replace('Y', 'yy') + .replace('m', 'mm') + .replace('d', 'dd'); + datepickerSettings.dateFormat = dateFormat; + // Add min and max date if set on the input. + if ($input.attr('min')) { + datepickerSettings.minDate = $input.attr('min'); + } + if ($input.attr('max')) { + datepickerSettings.maxDate = $input.attr('max'); + } + $input.datepicker(datepickerSettings); + }); }, /** * Detach the behavior destroying datepickers on effected elements. */ detach: function (context, settings, trigger) { if (trigger === 'unload') { - $(context).find('input[data-drupal-date-format].hasDatepicker') - .datepicker("destroy") - .removeClass("hasDatepicker"); + $(context).find('input[data-drupal-date-format].hasDatepicker').datepicker("destroy"); } } };