javascript - Angular ng-repeat 输入验证

标签 javascript angularjs validation angularjs-ng-repeat

在本地存储中保存数据之前,我必须验证用户是否填写了所有输入。除了输入验证之外,一切正常。到目前为止我对 Angularjs 还不太熟悉。 非常感谢任何帮助

var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope) {
  $scope.d1 = [];
  $scope.d2 = [];
  $scope.data = [];

  $scope.append = function() {
    $scope.data.push([]);
  };

  $scope.save = function() {
    for (var i = 0; i < $scope.d1.length; i++) {
      if ($scope.d1[i].length === 0) {
        alert("fill empty fields please");
      } else {
        localStorage.setItem('Surname', JSON.stringify($scope.d1));
      }
    }
    for (var j = 0; j < $scope.d2.length; j++) {
      if ($scope.d2[j].length === 0) {
        alert("fill empty fields please");
      } else {
        localStorage.setItem('Name', JSON.stringify($scope.d2));
      }
    }
  };
});
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
  <link href="https://netdna.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body ng-app="myApp" ng-controller="myCtrl">
  <div class="container">
    <div class="btn-group">
      <button ng-click="append()" type="button" class="btn btn-default">append</button>
      <button ng-click="save()" type="button" class="btn btn-default">Save</button>
    </div>
    <table class="table table-bordered">
      <tr>
        <th>Surname</th>
        <th>Name</th>
      </tr>
      <tr ng-repeat="x in data">
        <td><input ng-model="d1[$index]" type="text" class="form-control"></td>
        <td><input ng-model="d2[$index]" type="text" class="form-control"></td>
      </tr>
    </table>
  </div>
</body>
</html>

最佳答案

在输入中添加元素名称并使用“required”使该字段成为必填

   <form name="myForm" novalidate>      
..........................
<td><input ng-model="d1[$index]" type="text"
     required name="text{{$index}}" class="form-control"></td>
            <td><input ng-model="d2[$index]"
     type="text" required name="text{{$index}}"class="form-control"></td>

........</form>

在进行保存操作之前检查天气表单是否有效

$scope.save = function() {
   if($scope.myForm.$valid){
//add code
}else{
//display error message 
}
}

我们还可以显示字段级别验证请参阅here

关于javascript - Angular ng-repeat 输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47797918/

相关文章:

javascript - 使用 ng-repeat 后专注于特定行

c++ - 用于匹配以空格分隔的多个坐标的正则表达式

javascript - 理解 JavaScript 中的决策表

javascript - AngularJS 导航在 tinymce 指令后不起作用

javascript - 使用javascript在目录中加载xml文件

javascript - Angular requirejs 标签在 HTML 标签具有 100% 高度之前没有向 css 添加 100% 高度

javascript - YUP 验证期间出错 "Cannot read property ' 长度'未定义”

javascript - 显示特定州错误的邮政编码验证

javascript - 如何通过正则表达式仅对 JSON 键进行着色?

javascript - 函数未运行/未正确调用