Angular 2 表单验证无效
Angular 2 form validation not working
我有一个 angular 2 应用程序 (RC.4),我在表单验证方面遇到问题。
我的模板中有以下表单代码。
<div class='modal'>
<form #modalForm='ngForm'>
<div class='heading'>
<h4>{{_title}}</h4>
<div class='close-icon' (click)='close()'></div>
</div>
<div class='body'>
<input type='text' name='projectName' [(ngModel)]='projectName' required placeholder='Give your project a name...' id='focusOnMe'>
</div>
<div class='controls'>
<button class='btn btn-secondary' (click)='close()'>Cancel</button>
<button type='submit' class='btn' (click)='sendAction()' [disabled]='!modalForm.form.valid'>{{_action}}</button>
</div>
</form>
</div>
如您所见,我命名了表单元素并将其设置为 ngForm,然后在输入中包含了必需的属性,最后在提交按钮上我说 [disabled]=!modalForm.form.valid 但是对于某些原因是表单总是被标记为有效,即使所需的输入为空。我在这里错过了什么?
对于Angular 2 RC 4:
您遗漏了告诉表单您的 "projectName" 输入应该是表单验证的一部分的部分。只需添加 "ngControl='inputId'":
<input type='text'
name='projectName'
ngControl="projectName"
[(ngModel)]='projectName'
required
placeholder='Give your project a name...'
id='focusOnMe'>
对于 Angular 2.0 最终版本:
- 将 [formGroup] 添加到您的表单:
<form [formGroup]="modalForm">
将 "formControlName" 添加到您的控件中:
<input type='text'
name='projectName'
formControlName="projectName"
[(ngModel)]='projectName'
required
placeholder='Give your project a name...'
id='focusOnMe'>
我有一个 angular 2 应用程序 (RC.4),我在表单验证方面遇到问题。
我的模板中有以下表单代码。
<div class='modal'>
<form #modalForm='ngForm'>
<div class='heading'>
<h4>{{_title}}</h4>
<div class='close-icon' (click)='close()'></div>
</div>
<div class='body'>
<input type='text' name='projectName' [(ngModel)]='projectName' required placeholder='Give your project a name...' id='focusOnMe'>
</div>
<div class='controls'>
<button class='btn btn-secondary' (click)='close()'>Cancel</button>
<button type='submit' class='btn' (click)='sendAction()' [disabled]='!modalForm.form.valid'>{{_action}}</button>
</div>
</form>
</div>
如您所见,我命名了表单元素并将其设置为 ngForm,然后在输入中包含了必需的属性,最后在提交按钮上我说 [disabled]=!modalForm.form.valid 但是对于某些原因是表单总是被标记为有效,即使所需的输入为空。我在这里错过了什么?
对于Angular 2 RC 4:
您遗漏了告诉表单您的 "projectName" 输入应该是表单验证的一部分的部分。只需添加 "ngControl='inputId'":
<input type='text'
name='projectName'
ngControl="projectName"
[(ngModel)]='projectName'
required
placeholder='Give your project a name...'
id='focusOnMe'>
对于 Angular 2.0 最终版本:
- 将 [formGroup] 添加到您的表单:
<form [formGroup]="modalForm">
将 "formControlName" 添加到您的控件中:
<input type='text' name='projectName' formControlName="projectName" [(ngModel)]='projectName' required placeholder='Give your project a name...' id='focusOnMe'>