diff --git a/clientside_validation.js b/clientside_validation.js index db5d641..bfc94d6 100644 --- a/clientside_validation.js +++ b/clientside_validation.js @@ -1179,15 +1179,26 @@ var month = parseInt(parts[param.monthpos], 10); if (isNaN(month)) { - if (typeof Drupal.settings.clientside_validation_settings[parts[param.monthpos]] !== undefined) { - month = Drupal.settings.clientside_validation_settings[parts[param.monthpos]]; + var date_parts = param.format.split(param.splitter); + var full_idx = date_parts.indexOf("F"); + var abbr_idx = date_parts.indexOf("M"); + var mopos = Math.max(full_idx, abbr_idx); + if (parseInt(mopos) > -1) { + param.monthpos = mopos; + date = new Date(parts[param.monthpos] + " 1, 2000"); + month = date.getMonth(); } else { - month = new Date(parts[param.monthpos] + " 1, 2000"); - month = month.getMonth(); + if (typeof Drupal.settings.clientside_validation_settings[parts[param.monthpos]] !== undefined) { + month = Drupal.settings.clientside_validation_settings[parts[param.monthpos]]; + //month = month - 1; + } + else { + month = new Date(parts[param.monthpos] + " 1, 2000"); + month = month.getMonth(); + } } } - month = month - 1; var year = parseInt(parts[param.yearpos], 10); var date = new Date(); @@ -1201,10 +1212,10 @@ if (parts[param.yearpos].toString().length !== parts[param.yearpos].length){ result = false; } - if (param.yearpos !== false){ + if (param.daypos !== false) { expectedpartscount++; - date.setFullYear(year); - if (year !== date.getFullYear()) { + date.setDate(day); + if (day !== date.getDate()) { result = false; } } @@ -1215,10 +1226,10 @@ result = false; } } - if (param.daypos !== false) { + if (param.yearpos !== false){ expectedpartscount++; - date.setDate(day); - if (day !== date.getDate()) { + date.setFullYear(year); + if (year !== date.getFullYear()) { result = false; } }