Skip to content

Commit bd488f9

Browse files
committed
Calendar: Clear value if an invalid input was given
1 parent f64a7a4 commit bd488f9

File tree

3 files changed

+18
-17
lines changed

3 files changed

+18
-17
lines changed

tests/unit/calendar/methods.js

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ test( "value", function( assert ) {
5656
equal( this.element.calendar( "value" ), "1/1/14", "getter" );
5757

5858
this.element.calendar( "value", "abc" );
59-
equal( this.element.calendar( "value" ), "1/1/14", "Setting invalid values should be ignored." );
59+
equal( this.element.calendar( "value" ), null, "Setting invalid values." );
6060
} );
6161

6262
test( "valueAsDate", function( assert ) {
@@ -95,9 +95,9 @@ test( "valueAsDate", function( assert ) {
9595
);
9696

9797
this.element.calendar( "valueAsDate", date1 );
98-
assert.dateEqual(
98+
equal(
9999
this.element.calendar( "valueAsDate" ),
100-
date2,
100+
null,
101101
"Set date min/max - value < min"
102102
);
103103

@@ -111,25 +111,25 @@ test( "valueAsDate", function( assert ) {
111111
);
112112

113113
this.element.calendar( "valueAsDate", date2 );
114-
assert.dateEqual(
114+
equal(
115115
this.element.calendar( "valueAsDate" ),
116-
date1,
116+
null,
117117
"Set date min/max - value > max"
118118
);
119119

120120
this.element
121121
.calendar( "option", { min: minDate } )
122122
.calendar( "valueAsDate", date1 );
123-
assert.dateEqual(
123+
equal(
124124
this.element.calendar( "valueAsDate" ),
125-
date1,
125+
null,
126126
"Set date min/max - value < min"
127127
);
128128

129129
this.element.calendar( "valueAsDate", date2 );
130-
assert.dateEqual(
130+
equal(
131131
this.element.calendar( "valueAsDate" ),
132-
date1, "Set date min/max - value > max"
132+
null, "Set date min/max - value > max"
133133
);
134134

135135
dateAndTimeToSet = new Date( 2008, 3 - 1, 28, 1, 11, 0 );

tests/unit/calendar/options.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ test( "min / max", function( assert ) {
203203
this.element
204204
.calendar( "option", { min: minDate } )
205205
.calendar( "value", "1/4/08" );
206-
assert.dateEqual( this.element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < min" );
206+
equal( this.element.calendar( "valueAsDate" ), null, "Min/max - value < min" );
207207

208208
this.element
209209
.calendar( "option", { min: null } )
@@ -214,12 +214,12 @@ test( "min / max", function( assert ) {
214214
this.element
215215
.calendar( "option", { max: maxDate } )
216216
.calendar( "value", "1/4/09" );
217-
assert.dateEqual( this.element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - setDate > max" );
217+
equal( this.element.calendar( "valueAsDate" ), null, "Min/max - setDate > max" );
218218

219219
this.element
220220
.calendar( "option", { min: minDate, max: maxDate } )
221221
.calendar( "value", "1/4/08" );
222-
assert.dateEqual( this.element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value < min" );
222+
equal( this.element.calendar( "valueAsDate" ), null, "Min/max - value < min" );
223223

224224
this.element
225225
.calendar( "option", { min: minDate, max: maxDate } )
@@ -229,7 +229,7 @@ test( "min / max", function( assert ) {
229229
this.element
230230
.calendar( "option", { min: minDate, max: maxDate } )
231231
.calendar( "value", "1/4/09" );
232-
assert.dateEqual( this.element.calendar( "valueAsDate" ), new Date( 2008, 6 - 1, 4 ), "Min/max - value > max" );
232+
equal( this.element.calendar( "valueAsDate" ), null, "Min/max - value > max" );
233233

234234
this.element
235235
.calendar( "option", { min: minDate, max: maxDate } )
@@ -326,7 +326,7 @@ test( "value", function( assert ) {
326326
);
327327

328328
this.element.calendar( "option", "value", "invalid" );
329-
assert.dateEqual( this.element.calendar( "option", "value" ), date, "Value after invalid parameter" );
329+
equal( this.element.calendar( "option", "value" ), null, "Value after invalid parameter" );
330330
} );
331331

332332
/*

ui/widgets/calendar.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -646,7 +646,8 @@ return $.widget( "ui.calendar", {
646646
if ( arguments.length ) {
647647
this.valueAsDate( this._parse( value ) );
648648
} else {
649-
return this._format( this.option( "value" ) );
649+
return this.option( "value" ) === null ?
650+
null : this._format( this.option( "value" ) );
650651
}
651652
},
652653

@@ -716,9 +717,9 @@ return $.widget( "ui.calendar", {
716717
if ( key === "value" ) {
717718
if ( this._isValid( value ) ) {
718719
this.date.setTime( value.getTime() );
719-
this._super( key, value );
720+
} else {
721+
value = null;
720722
}
721-
return;
722723
}
723724

724725
if ( key === "max" || key === "min" ) {

0 commit comments

Comments
 (0)