将表格重置为原始状态后如何重置焦点?

时间:2013-11-27 14:51:47

标签: angularjs angularjs-directive

我有一个具有自动聚焦属性的字段

 <input placeholder="ID" type="text" name="searchId" autofocus
                   data-ng-model="vm.searchCriteria.searchId" data-ng-required="vm.isSearchIdRequired"
                   data-ng-minlength="1" data-sr-maxlength="{{vm.searchIdMaxLength}}" data-sr-numberonly
                   data-ng-class="{'input-error': vm.isSearchIdValid}"
                   data-ng-change="vm.onSearchIdChange()">

我有一个清除按钮,通过控制器上的复位功能将表格重置为初始状态

function reset() {
            $scope.searchForm.$setPristine();
            $scope.vm.reset();
        }

一切正常,但表单没有聚焦回searchId字段。处理这个问题的正确方法是什么?我是否需要编写指令并使用它而不是自动对焦?

2 个答案:

答案 0 :(得分:0)

autofocus是一个html5输入属性,仅在加载页面时聚焦字段。当表单重置或使用JavaScript动态添加字段时,它不会重新触发。

所以是的,你必须为它写一个指令。

答案 1 :(得分:0)

也许你可以使用

https://github.com/hiebj/ng-focus-if

并将“searchForm。$ getPristine()”作为标准?