ngForm simple example in angular 6 with select box

2020-04-11 08:13发布

问题:

Angular 6 form validation simple example. With email validation and select box(drop down).ngForm simple example in angular 6 with select box

回答1:

Use ngForm. Import it your component.module.ts(module file)

import { FormsModule } from '@angular/forms';

Add it your component template

<form role="form" (ngSubmit)="f.form.valid && onSubmit()" #f="ngForm" novalidate>
    <select name="name_id" [(ngModel)]="model.name_id" #name_id="ngModel" [ngClass]="{ 'is-invalid': f.submitted && name_id.invalid }" required>
        <option value="" disabled selected>Select Name</option>
        <option *ngFor="let name of allnames" [value]="name.name_id">{{name.name}}</option>
    </select>
    <div *ngIf="f.submitted && name_id.invalid" class="invalid-feedback">
        <div *ngIf="name_id.errors.required">Name is required</div>
    </div>
    <input type="email" placeholder="Email" name="email" [(ngModel)]="recoverModel.email" #email="ngModel" pattern="^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$" [ngClass]="{ 'is-invalid': recoverForm.submitted && email.invalid }" required />
    <div *ngIf="recoverForm.submitted && email.invalid" class="invalid-feedback">
        <div *ngIf="email.errors.required">Email is required</div>
        <div *ngIf="email.errors.pattern">Email is invalid</div>
    </div>
    <button type="submit">save</button>
</form>

Add it your component.ts

allnames = [{
    name_id: 1,
    name: 'Jhon'
}, {
    name_id: 2,
    name: 'Chena'
}, {
    name_id: 3,
    name: 'Jack'
}]
model: any = {};
ngOnInit() {
    this.model.name_id = 2;
}

The name Chena is selected in select box and email valid. It's work well. And i will use it.