javascript - Angular 形式验证焦点

标签 javascript jquery angularjs

尝试进行表单验证,当提交时输入为空时,它应该关注该空字段。我正在遍历 element.class 来执行 .focus() 但我不知道如何找到哪个是空的并专注于该字段。

var refocusInput = function() {
            $timeout(function(){
                var inputHasError = document.getElementsByClassName("form-control");
                for (var i = 0; i < inputHasError.length; i++) {
                    var element = inputHasError[i];
                    if(element){
                        console.log(inputHasError);
                        inputHasError[i].focus();
                        console.log('focus')
                    }
                }
        })
    }
vm.publishForm = function (){
    refocusInput();
}

最佳答案

您使用的是 Angular,因此您始终可以使用 ng-form 属性和 $valid 属性

示例来自 Angular 文档 link

angular.module('formExample', [])
  .controller('FormController', ['$scope',
    function($scope) {
      $scope.userType = 'guest';
      $scope.submit = function(e) {
        $scope.isValid = $scope.myForm.$valid
      }
    }
  ]);
.my-form {
  transition: all linear 0.5s;
  background: transparent;
}
.my-form.not-valid{
  background: red;
  }
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="formExample">

  <form name="myForm" ng-controller="FormController" ng-class="{'not-valid' : !isValid}" class="my-form">
    userType:
    <input name="input" ng-model="userType" required>
    <span class="error" ng-show="myForm.input.$error.required">Required!</span>
    <input type='button' ng-click='submit($event)' value='submit' />
    <br>
    <code>userType = {{userType}}</code>
    <br>
    <code>myForm.input.$valid = {{myForm.input.$valid}}</code>
    <br>
    <code>myForm.input.$error = {{myForm.input.$error}}</code>
    <br>
    <code>myForm.$valid = {{myForm.$valid}}</code>
    <br>
    <code>myForm.$error.required = {{!!myForm.$error.required}}</code>
    <br>
  </form>
</div>

关于javascript - Angular 形式验证焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36398997/

相关文章:

javascript - AngularJs ng-模式正则表达式

javascript - 更改一个选择选项会更改许多其他选项(JavaScript、JQuery)

javascript - 使用 props 将子组件数据传递给父组件

javascript - AngularJS 分页错误 : can not capture current page index

jquery - 迭代到元素数组

javascript - Eonasdan Bootstrap Datetimepicker 日历不可见

javascript - 哪种做法最适合在 angular.js 中保存状态和模型

javascript - 在 Vue 文件中创建根 Vue 实例

javascript - 在客户端准备动态 JSON 数据

angularjs - 如何在angularjs中检索点击的ElementId?