我当前有一条指令,当用户键入一个值时,该指令从一个输入移到下一个输入。我的输入只允许输入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();
}
}
});
}
};
}