【问题标题】:In angularJS, after disabling a field it loses focus. How do I manually put the focus back?在 angularJS 中,禁用字段后,它会失去焦点。如何手动将焦点放回原处?
【发布时间】:2021-09-29 02:09:50
【问题描述】:

http://jsfiddle.net/0n6tzcpb/

我有以下小提琴,只有一个输入类型文本和一个按钮,该按钮禁用然后在 1 秒后启用该字段。

我试过放

   var myEl = document.getElementById('myId');
   var angularEl = angular.element(myEl);
   angularEl.focus();
        

在第 10 行之后,但它给出了以下错误

<a class='gotoLine' href='#[object Error] { ... }'>[object Error] { ... }</a>

如果我在小提琴中启用 jQuery,那么错误就会消失,但仍然不起作用。

【问题讨论】:

  • 来自link shown in the error“jqLit​​e 不支持通过选择器查找元素!...为了保持 Angular 的小型化,Angular 仅在 jqLit​​e 中实现了选择器的一个子集。当使用此子集以外的选择器调用 jqLit​​e 实例时会发生此错误。"。所以看起来你不能使用 angular.element 来选择 ID 选择器......

标签: jquery angularjs


【解决方案1】:

在我的项目中,我设法解决了这个问题

   $shouldDisable = false;
   $timeout(function() {
      var element = angular.element("#id");
      element.focus()
   });

在 jsfiddle 我不知道为什么这不起作用。 $timeout 是必要的,因此它会在其他所有操作之后执行。

【讨论】:

    猜你喜欢
    • 2011-10-13
    • 2022-09-23
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多