Skip to content

Commit 957b6f4

Browse files
committed
Fix NUMBER_TOOSHORT error while jumping to next part
1 parent 12783e7 commit 957b6f4

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

src/directive.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ angular.module("datetime").directive("datetime", function(datetime, $log, $docum
192192
node: null,
193193
start: 0,
194194
end: 0
195-
};
195+
}, lastError;
196196

197197
if (angular.isDefined(attrs.datetimeUtc)) {
198198
parser.setTimezone("+0000");
@@ -265,6 +265,7 @@ angular.module("datetime").directive("datetime", function(datetime, $log, $docum
265265
try {
266266
parser.parse(viewValue);
267267
} catch (err) {
268+
lastError = err;
268269
$log.error(err);
269270

270271
ngModel.$setValidity("datetime", false);
@@ -311,6 +312,7 @@ angular.module("datetime").directive("datetime", function(datetime, $log, $docum
311312

312313
return undefined;
313314
}
315+
lastError = null;
314316

315317
ngModel.$setValidity("datetime", true);
316318

@@ -451,9 +453,14 @@ angular.module("datetime").directive("datetime", function(datetime, $log, $docum
451453
if (range.node.next && range.node.next.token.name === 'string' && range.node.next.token.type === 'static') {
452454
nextSeparatorKeyCode = range.node.next.viewValue.charCodeAt(0);
453455
}
454-
456+
455457
if (e.keyCode === nextSeparatorKeyCode) {
456458
e.preventDefault();
459+
if (lastError && lastError.code == "NUMBER_TOOSHORT") {
460+
parser.nodeParseValue(lastError.node, lastError.properValue);
461+
ngModel.$setViewValue(parser.getText());
462+
ngModel.$render();
463+
}
457464
if (!ngModel.$error.datetime) {
458465
selectRange(range, "next");
459466
} else {

src/factory.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -509,7 +509,8 @@ angular.module("datetime").factory("datetime", function($locale){
509509
text: text,
510510
node: p,
511511
pos: pos,
512-
match: value
512+
match: value,
513+
properValue: num2str(+value, p.token.minLength, p.token.maxLength)
513514
};
514515
}
515516

0 commit comments

Comments
 (0)