ng单击,但防止任何活动输入失去焦点

ngClick but prevent any active inputs from losing focus

本文关键字:活动 输入 失去 焦点 任何 单击 ng      更新时间:2023-09-26

在我的 Angular 视图中,我有一个输入字段和一些使用 ng-click 的可点击好东西。

有没有一种角度方法或简单的香草js方法可以防止输入字段在单击其中一个ng单击时失去焦点(如果它是焦点)?

<input type="text" class="form-control" ng-model="foo">
<button ng-click="someThing()">click me</button>

不带 ng-click ,因为当触发时,单击的元素已经从输入中获取了焦点。

但是,如果您$event.preventDefault()事件处理程序,ng-mousedown应该可以工作。 这是香草 JS 的演示;这在 Angular 中也应该有效:

    var preventBlur = function(event) {
      console.log("click");
      event.preventDefault();
    }
    <input type='text' onblur="alert('blurred')">
    <button onmousedown="preventBlur(event)">Click</button>
    

如果在输入字段

处于焦点时单击该按钮,鼠标按下将触发,而不会导致输入字段失去焦点。

最简单的解决方案是使用 JavaScript

$scope.someThing = function () {
    //implementation...
    document.getElementById("yourInputIt").focus();
};