В настоящее время у меня есть директива, которая перемещается от одного входа к следующему, когда пользователь вводит значение.Мой ввод позволяет только 1 цифра.Это выглядит следующим образом:
_ _ _
и при заполнении будет выглядеть примерно так: 1 1 1
Моя директива сейчас следующая:
(function () {
"use strict";
angular
.module("movenext.input", [])
.directive("moveNextInput", moveNextInput);
moveNextInput.$inject = [];
function moveNextInput() {
return {
restrict: 'A',
link: function ($scope, element) {
element.on("input", function (e) {
if (element.val().length == element.attr("maxlength")) {
var $nextElement = element.next();
if ($nextElement.length) {
$nextElement[0].focus();
}
}
});
}
};
}
мой html:
<input class="mb20" type="tel" id="new_auth1" move-next-input move-previous-input ng-click="newCodeAutorizationfocus(1)" maxlength="1">
и функция щелчка
$scope.newCodeAutorizationfocus = function (n) {
$timeout(function () {
var id = '#new_auth' + n;
$(id).focus();
}, 500);
};
Мой вопрос заключается в том, как сделать обратное, как сказано в заголовке.Я попробовал следующую функцию, но безуспешно:
function movePreviousInput() {
return {
restrict: 'A',
link: function ($scope, element) {
element.on("input", function (e) {
if (element.val().length == element.attr("maxlength")) {
var $previousElement = element;
console.log($previousElement);
if ($previousElement.length) {
$previousElement[$previousElement.length - 1].focus();
}
}
});
}
};
}