EnigmaRM EnigmaRM - 6 months ago 42
AngularJS Question

Input cursor position jumps to end with ng-change()

I have an instance where I'm replacing the value of

ngModel
through
ngChange
. The cursor jumps to the end of the
input
field after each change (assuming because I'm assigning the result to the same
$scope
variable.)

I'd like to know how I can prevent this behavior?

$scope.compute1 = 0;
$scope.compute2 = 10;

$scope.math = function() {
$scope.compute1 = parseInt($scope.compute1);
$scope.compute2 = parseInt($scope.compute2);

$scope.compute1 = parseInt($scope.compute1);
};


fiddle

Example of problem: if a user types in 1000. It's fine. But then if they want to go back and change the number to 156000 by just adding the 5 and 6, the 6 would actually be appended to the end: 15006.

Answer

The cursor goest to the end because we modify data by using parseInt.

I suggest you to store the caret position before and then when you're done doing things, set it back.

This example might help you: Link

Comments