提交表单后如何重置表单和验证(AngularJS)
How reset form and validation after submitting form (AngularJS)
我想在提交表单后重置表单和所有验证消息。这是plunker:http://plnkr.co/edit/992RP8gemIjgc3KxzLvQ?p =
预览我的代码如下:
控制器:
app.controller('MainCtrl', function($scope) {
$scope.data={fullName:''};
$scope.submit=function(){
console.log('submit')
$scope.myForm.$setPristine();
$scope.myForm.$setUntouched();
$scope.data={fullName:''};
}
});
HTML: <body ng-controller="MainCtrl">
<form name="myForm" novalidate>
<div>
<label class="control-label">Name</label>
<input
name="full_name"
type="text"
ng-model="data.fullName"
ng-required="true">
<p ng-if="myForm.$submitted && myForm.$invalid">Validation message</p>
</div>
<button ng-click="submit()" type="submit">
Submit
</button>
</form>
</body>
我的问题是:当用户在输入中输入名称并单击Submit按钮时,不应该显示验证消息,因为模型、表单和验证应该被重置。我该怎么做呢?
我尝试使用$ set质朴()和$ setuntouch(),但它不适合我。
在AngularJS中可以做到吗?谢谢!
我很惊讶,但是$setpristine()
没有更新$submitted
。
这可能不是最漂亮的解决方案,但似乎有效:
app.controller('MainCtrl', function($scope, $timeout) {
$scope.data = {
fullName: ''
};
$scope.submit = function() {
console.log('submit')
$scope.data = {
fullName: ''
};
$timeout(function() {
$scope.myForm.$setPristine();
$scope.myForm.$setUntouched();
$scope.myForm.$submitted = false;
});
}
});
演示相关文章:
- angularjs-控制器在表单提交时未调用
- AngularJS JQuery Ajax表单提交等效
- 如何在使用AngularJS更改下拉值时清除表单中的数据
- Angularjs:提交后清除表单无效
- 如何从AngularJS表单输入中生成一个永久变量
- 如何在Angularjs中模拟HTML表单请求
- 从后台用angularjs填充表单
- 如何在 Angularjs 中访问表单值
- 模拟提交和验证到AngularJS上的单独表单
- AngularJS中的动态表单验证 - 是否有更好的解决方案/方法
- 使用AngularJs,尝试通过Google App Engine上的PHP使用HTML联系我们表单发送电子邮件
- 如何从表单标签外部的按钮手动触发 AngularJS 验证
- AngularJS不会从对象中删除表单
- 如何使用angularjs服务将表单参数传递给Rest
- JSON 填充的表单元素不使用 angularJs 过滤器进行过滤
- 提交时AngularJS中的表单验证不起作用
- 如何手动触发表单's以AngularJS提交
- AngularJs的表单验证没有'不起作用
- 在提交表单angularjs时进行微调
- 动态表单 AngularJS 中的警报错误