我有一张表格,当我提交时,我会在表格提交后重新初始化。然后我会显示一条消息并保持在同一页面上。
但是,表单的字段会出现错误消息,因为表单已被“触摸”。
以下展示:
我已经阅读了一些关于如何解决这个问题的文章,但没有一篇对我有用。
我的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();
当然还有更多的领域,但要解决这个问题,只需要这个简单的代码就可以证明它。
任何输入都会有所帮助。谢谢你们!
答案 0 :(得分:1)
您的resetData函数应为:
$scope.resetData = function(){
$scope.post = {};
$scope.newPost.$setUntouched();
$scope.newPost.$setPristine();
}
其中newPost是表格名称&amp; $ setUntouched,$ setPristine将使表单原始就像最初加载一样。在提交功能结束时调用此函数。