ng-Submit和suppress ng-messages之后重置表单

时间:2017-08-24 15:42:13

标签: angularjs forms ng-messages

我有一张表格,当我提交时,我会在表格提交后重新初始化。然后我会显示一条消息并保持在同一页面上。

但是,表单的字段会出现错误消息,因为表单已被“触摸”。

以下展示:

enter image description here

我已经阅读了一些关于如何解决这个问题的文章,但没有一篇对我有用。

我的HTML:

<form name="newPost" ng-submit="makeNewPost()">
<div class="form-group">
  <input name="title" maxlength="46" minlength="2" type="text" class="form-control" ng-model="post.title" required="required">
  <div ng-messages="newPost.title.$error" ng-if="newPost.title.$touched">
    <div class="errorMessage" ng-message="required">Title is mandatory *</div>
  </div>
</div>

<input type="submit" value="Submit" class="btn btn-success" id="submit"> 

我的控制器代码重置数据:

var resetData = function(){
  $scope.post = {};
};

resetData();

当然还有更多的领域,但要解决这个问题,只需要这个简单的代码就可以证明它。

任何输入都会有所帮助。谢谢你们!

1 个答案:

答案 0 :(得分:1)

您的resetData函数应为:

$scope.resetData = function(){
  $scope.post = {};
  $scope.newPost.$setUntouched();
  $scope.newPost.$setPristine();
}

其中newPost是表格名称&amp; $ setUntouched,$ setPristine将使表单原始就像最初加载一样。在提交功能结束时调用此函数。