如何将光标焦点设置在输入字段上?

时间:2017-01-19 11:00:58

标签: angularjs angular-material

我想在显示表单(指令)后立即将光标焦点设置在输入字段上。我尝试将以下代码添加到我的链接功能中:

link: function (scope, element, attrs) {
    element('input[name=headline]').focus();
}

但它不起作用。我还尝试了以下变体:

element.find('input[name=headline]').focus();
element.querySelector('input[name=headline]').focus();

我在网上找不到任何有用的信息。 md-autofocus似乎与我想要实现的目标毫无关系。

2 个答案:

答案 0 :(得分:2)

选项1

HTML autofocus

选项2

尝试使用角度来看ng-focus

更新

我的不好,ng-focus来自doc:

  

指定焦点事件的自定义行为。

因此,ng-focus不是您需要使用的。继续autofocus

使用ng-if

的最终解决方案

https://plnkr.co/edit/sb29aGHGtdFQ7fiLdbtN?p=preview

创建一个将为您应用焦点的指令。

myApp.directive('yourAutofocus', ['$timeout', function($timeout) {
  return {
    restrict: 'A',
    link : function($scope, $element) {
      $element[0].focus();
    }
  }
}]);

答案 1 :(得分:1)

试试这个

ng-if="showMe" ng-focus="true && showMe" or ng-focus="focudMe=true; showMe=true"