Skip to content

Commit ef76709

Browse files
mattjbraymgcrea
authored andcommitted
fix(datepicker): fix keyboard nav in month/year views
setYear and setMonth return integer values (milliseconds from the epoch). `select` expects a Date object, so convert integers to Dates before passing them to `select`.
1 parent 82e03ef commit ef76709

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/datepicker/datepicker.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -454,10 +454,10 @@ angular.module('mgcrea.ngStrap.datepicker', ['mgcrea.ngStrap.helpers.dateParser'
454454
},
455455
onKeyDown: function(evt) {
456456
var actualMonth = picker.$date.getMonth();
457-
if(evt.keyCode === 37) picker.select(picker.$date.setMonth(actualMonth - 1), true);
458-
else if(evt.keyCode === 38) picker.select(picker.$date.setMonth(actualMonth - 4), true);
459-
else if(evt.keyCode === 39) picker.select(picker.$date.setMonth(actualMonth + 1), true);
460-
else if(evt.keyCode === 40) picker.select(picker.$date.setMonth(actualMonth + 4), true);
457+
if(evt.keyCode === 37) picker.select(new Date(picker.$date.setMonth(actualMonth - 1)), true);
458+
else if(evt.keyCode === 38) picker.select(new Date(picker.$date.setMonth(actualMonth - 4)), true);
459+
else if(evt.keyCode === 39) picker.select(new Date(picker.$date.setMonth(actualMonth + 1)), true);
460+
else if(evt.keyCode === 40) picker.select(new Date(picker.$date.setMonth(actualMonth + 4)), true);
461461
}
462462
}, {
463463
name: 'year',
@@ -494,10 +494,10 @@ angular.module('mgcrea.ngStrap.datepicker', ['mgcrea.ngStrap.helpers.dateParser'
494494
},
495495
onKeyDown: function(evt) {
496496
var actualYear = picker.$date.getFullYear();
497-
if(evt.keyCode === 37) picker.select(picker.$date.setYear(actualYear - 1), true);
498-
else if(evt.keyCode === 38) picker.select(picker.$date.setYear(actualYear - 4), true);
499-
else if(evt.keyCode === 39) picker.select(picker.$date.setYear(actualYear + 1), true);
500-
else if(evt.keyCode === 40) picker.select(picker.$date.setYear(actualYear + 4), true);
497+
if(evt.keyCode === 37) picker.select(new Date(picker.$date.setYear(actualYear - 1)), true);
498+
else if(evt.keyCode === 38) picker.select(new Date(picker.$date.setYear(actualYear - 4)), true);
499+
else if(evt.keyCode === 39) picker.select(new Date(picker.$date.setYear(actualYear + 1)), true);
500+
else if(evt.keyCode === 40) picker.select(new Date(picker.$date.setYear(actualYear + 4)), true);
501501
}
502502
}];
503503

0 commit comments

Comments
 (0)