AngularJS - 当点击按钮时保持焦点在输入框上

4

当单击一个 div 按钮时,我希望能保持焦点在文本区域上。

<input type="text" ng-model="myText" id = "area1" ></input>

我的按钮是由指令中的模板动态生成的,如下所示:

 <my-buttons > </my-buttons>

app.directive('myButtons', function () {
    return {
        restrict: "E",
        templateUrl: "templates/buttons.html"
        link: function ($scope) {}
    };
});

模板是什么?

<div>
    <div>
        <div ng-click="submitResult();">
            <div ng-style="color:red"> <span>OK</span>
            </div>
        </div>
    </div>
</div>

当我点击提交按钮时,它会从输入框中删除焦点,但我希望焦点仍然停留在原来的输入框上。我知道我们可以使用以下代码设置焦点:

document.getElementById("id").focus();

我需要向 myButtons 指令添加一个属性并传递输入框的 id,或者在 AngularJS 中是否有其他解决方法。页面上可能会有许多此类输入和按钮。

2个回答

3

没有Angular方法可以告诉元素即使另一个控件需要焦点,也不要失去焦点。您需要通过手动处理blur事件来实现此功能。


实际上,如果您查看他的模板,他正在使用 div 元素作为按钮。 - VishwaKumar

1

根据Charlie的答案,并作为实现你想要的建议,尝试跟踪当前聚焦的元素。在按钮点击时,将焦点返回到最后一个聚焦的元素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接