Angularjs专注于3个字符后的输入文本

时间:2015-09-15 17:50:59

标签: angularjs

我正在使用Ionic Angularjs,并希望在输入类型文本中键入3个字符后,将焦点设置为下一个输入。

我可以使用limitTo过滤器与其他angularjs功能组合吗?

1 个答案:

答案 0 :(得分:1)

为此,您可以使用AngularJS指令,结合HTML5的输入maxlength属性:

指令

angular.module('myApp', [])
  .directive('focusAfter', function() {
    return {
      restrict: 'A',
      scope: {
        elemToFocus: '@'
      },
      link: function(scope, elem, attrs) {
        var elementToFocus = document.getElementById(scope.elemToFocus);
        elem.on('keyup', function() {
          if(elem.val().length === 3) {
            window.setTimeout(function() {
              elementToFocus.focus();
            });

          }
        });
      }
    };
  });

查看

<input type="text" maxlength="3" id="input1" focus-after elem-to-focus="input2">
<input type="text" maxlength="3" id="input2" focus-after elem-to-focus="input3">
<input type="text" maxlength="3" id="input3" focus-after elem-to-focus="input1">

这是一个傻瓜:http://plnkr.co/edit/QvS0dwUNW3oAhHID1VRX?p=info