Переход к предыдущему вводу при нажатии для удаления директивы angularjs - PullRequest
0 голосов
/ 16 октября 2018

У меня есть следующая директива для перехода к следующему входу после заполнения поля, для этого у меня есть следующий код в моей директиве:

 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();
                        } });
            }
        };
    }

Я хочу, чтобы это произошло противоположным образом, при нажатии для удаления / возврата, на мобильном вводе, я хочу перейти к предыдущему вводу.

Мой ввод выглядит как следующая иллюстрация:

до заполнения: _ _ _

после заполнения (пример): 1 2 3

как сделатьэто случилось?У меня возникли проблемы с обнаружением нажатия кнопки удаления.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Я изменил свою уже существующую директиву следующим образом:

  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();
                        }
                    }
                }).keyup(function (e) {
                    if (e.which === 8 && !this.value) {
                        $(this).prev().focus();
                    }
                });
            }
        }
    };
})();

это работает и для меня

0 голосов
/ 16 октября 2018

Я думаю, что это должно работать

function deleteElementInput() {
   return {
     restrict: 'A',
     link: function($scope, element) {
       element.bind("keydown keypress", function(event) {
         if (event.which === 8 || event.which === 46) {
           if (element.val().length == 0) {
                var $prevElement = element.prev();
                if ($prevElement.length) {
                    $prevElement[0].focus();
                } 
           }
           event.preventDefault();
         }
       });
     }
   }
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...