2017-08-24 74 views
0

我有一个表单,当我提交时,我会在表单提交后重新初始化它。然后我显示一条消息并保持在同一页面上。ng-Submit提交并抑制ng消息后重置表格

但是,表单的字段在窗体被“触摸”时会显示错误消息。

以下证明:

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

你resetData功能应该是:

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

其中newPost是窗体名称& $ setUntouched,$ setPristine会使原始的形式,就像最初加载。在提交函数结束时调用该函数。

+0

你是一个传奇!非常感谢。像魅力和一半的作品 –

+1

@ShayanKhan很高兴帮助:) – Shantanu