diff --git a/Resources/Private/Build/JavaScript/FormValidation.js b/Resources/Private/Build/JavaScript/FormValidation.js index 4bb690dfb..4d66d69a6 100644 --- a/Resources/Private/Build/JavaScript/FormValidation.js +++ b/Resources/Private/Build/JavaScript/FormValidation.js @@ -1,5 +1,6 @@ import Utility from './Utility'; import MoreStepForm from './MoreStepForm'; +import moment from 'moment'; export default class FormValidation { #formValidationSelector = '[data-powermail-validate]'; @@ -331,7 +332,12 @@ class Form { return true; } let minimum = field.getAttribute('min') || field.getAttribute('data-powermail-min'); - return parseInt(field.value) >= parseInt(minimum); + let value = field.value; + if (field.getAttribute('type') === 'date' || field.getAttribute('type') === 'datetime-local' || field.getAttribute('type') === 'time') { + value = this.#getUnixTimestamp(value, field.getAttribute('data-datepicker-format')); + minimum = this.#getUnixTimestamp(minimum, field.getAttribute('data-datepicker-format')); + } + return parseInt(value) >= parseInt(minimum); }; #isValidationMaximumConfirmed(field) { @@ -339,7 +345,12 @@ class Form { return true; } let maximum = field.getAttribute('max') || field.getAttribute('data-powermail-max'); - return parseInt(field.value) <= parseInt(maximum); + let value = field.value; + if (field.getAttribute('type') === 'date' || field.getAttribute('type') === 'datetime-local' || field.getAttribute('type') === 'time') { + value = this.#getUnixTimestamp(value, field.getAttribute('data-datepicker-format')); + maximum = this.#getUnixTimestamp(maximum, field.getAttribute('data-datepicker-format')); + } + return parseInt(value) <= parseInt(maximum); }; #isValidationLengthConfirmed(field) { @@ -465,6 +476,14 @@ class Form { } return value; }; + + #getUnixTimestamp(value, formatInput) { + let momentDate = moment(value, formatInput); + if (momentDate.isValid) { + value = momentDate.unix(); + } + return value; + }; #getFieldIdentifier(field) { let name = field.getAttribute('name');