使用错误的 ng 模式重置 angularjs 表单字段

Reset angularjs form fields with wrong ng-pattern

本文关键字:angularjs 表单 字段 模式 错误 ng      更新时间:2023-09-26
`http://plnkr.co/edit/kAt9B3GrO8m8TT7lUHt6?p=preview`

嘿,朋友们,您能否告诉我如何在更少的步骤中重置表单值,而不是使每个值都为空?

我有一个允许字母表的模式,当我尝试重置表单时,我希望输入和错误消息都消失。 $setPristine只有在我输入正确的模式并重置时才清除表单,但我希望错误的输入(如 453453/=-=- (在重置时与其错误样式一起消失。

请帮忙..

如果您希望重置所有字段,您可以按照角度文档示例并使用主控形状复制数据。

如果您只想重置无效字段,则需要检查每个字段并在它们无效时重置它们。

更新您的弹道机。

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, $compile) {
  'use strict';
  $scope.master = {
    name: ""
  };
  $scope.data = angular.copy($scope.master);
  $scope.reset = function() {
    $scope.data = angular.copy($scope.master);
    $scope.form.$setPristine();
  }
});

http://plnkr.co/edit/3gFGSjA9kArzn7uNanIu?p=preview

我已经解决了这个问题,如下所示:

var input = angular.element('#[inputId]').val(); 

通过这种方式,您可以访问每个无效字段的值,并仅在范围中的值未定义时才检查此值。就我而言,所有范围字段之前都配置了 null 值,这样我可以轻松识别使用 ng-pattern 指令无效的字段。

例:

$scope.reset = function() {
   if($scope.formValues === undefined){
    var input1 = angular.element('#inputId1').val("");
    var input2 = angular.element('#inputId2').val("");
   }
   else{
   ...
   }
}