@@ -138,20 +138,7 @@ export default Base.extend({
138
138
const msg = input_options . message . date || input_options . message . datetime ;
139
139
140
140
let not_after ;
141
- let not_before ;
142
141
let not_after_el ;
143
- let not_before_el ;
144
-
145
- if ( ! utils . is_iso_date_time ( input . value , true ) ) {
146
- // Not a valid date at all, return.
147
- return ;
148
- }
149
- const date = new Date ( input . value ) ;
150
- if ( isNaN ( date ) ) {
151
- // Not a valid date, return.
152
- // Should not happen or input only partially typed in.
153
- return ;
154
- }
155
142
if ( input_options . not . after ) {
156
143
if ( utils . is_iso_date_time ( input_options . not . after , true ) ) {
157
144
not_after = new Date ( input_options . not . after ) ;
@@ -166,6 +153,9 @@ export default Base.extend({
166
153
// Use null if no valid date.
167
154
not_after = isNaN ( not_after ) ? null : not_after ;
168
155
}
156
+
157
+ let not_before ;
158
+ let not_before_el ;
169
159
if ( input_options . not . before ) {
170
160
if ( utils . is_iso_date_time ( input_options . not . before , true ) ) {
171
161
not_before = new Date ( input_options . not . before ) ;
@@ -180,11 +170,22 @@ export default Base.extend({
180
170
// Use null if no valid date.
181
171
not_before = isNaN ( not_before ) ? null : not_before ;
182
172
}
183
- if ( not_after && date > not_after ) {
184
- this . set_validity ( { input : input , msg : msg } ) ;
185
- } else if ( not_before && date < not_before ) {
186
- this . set_validity ( { input : input , msg : msg } ) ;
173
+
174
+ if (
175
+ input . value &&
176
+ utils . is_iso_date_time ( input . value , true ) &&
177
+ ! isNaN ( new Date ( input . value ) )
178
+ ) {
179
+ // That's 1 valid date!
180
+ const date = new Date ( input . value ) ;
181
+
182
+ if ( not_after && date > not_after ) {
183
+ this . set_validity ( { input : input , msg : msg } ) ;
184
+ } else if ( not_before && date < not_before ) {
185
+ this . set_validity ( { input : input , msg : msg } ) ;
186
+ }
187
187
}
188
+
188
189
// always check the other input to clear/set errors
189
190
! stop && // do not re-check when stop is set to avoid infinite loops
190
191
not_after_el &&
0 commit comments