从昨天开始,我试图做到如下。我有一个ui-select元素,在用例中,每当页面加载时,它都需要具有焦点。正如我在documentation中所看到的,可以在指令中设置自动对焦,但是我真正需要的是每当我单击按钮时就将焦点交换到输入文本,反之亦然,如果输入文本焦点在ui-select上再次。简单地将焦点从ui-select更改为输入文本时,这不是问题:

$("#txt-test").focus();


但在另一种情况下,简单地戴上将不起作用:

$("#cbx").focus();


其中#cbxui-select的ID。无论我如何尝试,它都永远不会成为焦点。

您可以在此处看到我要完成的工作的示例:jsFiddle

有任何想法吗?问候。

最佳答案

这应该工作:

$scope.clickButton = function(){
  var result = document.getElementById("cbx");
  var uiSelect = angular.element(result).controller('uiSelect');
  uiSelect.focusser[0].focus();
  uiSelect.open = true;
  uiSelect.activate();
}


jsFiddle

09-17 14:45
查看更多