Angular JS:提交前验证表单字段 [英] Angular JS: Validate form fields before submit
问题描述
我正在构建一个两步表单的 Angular JS 应用程序.它实际上只是一个表单,但使用 JavaScript 来隐藏第一个面板,并在用户单击下一步"按钮并转到第 2 步时显示第二个面板.我在第 1 步中的某些字段上设置了必需"验证,但显然,当用户单击下一步"按钮时,它们不会得到验证……当在第 2 步结束时单击提交"按钮时,它们会得到验证.
当单击下一步"按钮时,有什么方法可以告诉 angular 验证表单中的这些字段?
我建议使用子表单.AngularJS 支持将一种形式放入另一种形式中,并且有效性从下层形式传播到上层;
示例如下:http://plnkr.co/edit/SruBmlGZZtbwiU8cktAp?p=preview
这是一些代码,以便您可以理解这个想法:
<button ng-disabled="!step1form.$valid" ng-click="step = 2">下一步</button>
<div ng-show="step==2"><h3>步骤 2:最终信息</h3><div ng-form="step2form">电话:<input ng-model="phone" required>
<button ng-click="step = 1">上一页</button><button ng-disabled="!myform.$valid" ng-click="submit()">提交</button>