У меня есть форма в angular6 с полем формы электронной почты.
В поле формы электронной почты есть подтверждение электронной почты, которое правильно отображает сообщение об ошибке, если электронная почта недействительна. Но форма все равно сохраняется, если я нажму кнопку «Сохранить». Как я могу показать сообщение об ошибке, но не сохранить пользователя при нажатии?
Важное требование - я не хочу отключать кнопку «Сохранить».
user.component.html
<form method="post" enctype="multipart/form-data">
<mat-form-field>
<input matInput placeholder="Enter your Username" [(ngModel)]="userObj.userName" name="username" required>
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Enter your email" [formControl]="email" [(ngModel)]="userObj.emailid" name="emailid" required>
<mat-error *ngIf="email.invalid">{{getErrorMessage()}}</mat-error>
</mat-form-field>
</form>
<button mat-raised-button color="primary" (click)="saveNewUserDetails()">Save User</button>
user.component.ts
import {FormControl, Validators} from '@angular/forms';
email = new FormControl('', [Validators.required, Validators.email]);
getErrorMessage() {
return this.email.hasError('required') ? 'You must enter a value' :
this.email.hasError('email') ? 'Not a valid email' : '';
}
saveNewUserDetails(){
if(this.userObj.userName.trim() != ''){
const formData = new FormData();
formData.append('username',this.userObj.userName);
formData.append('emailid',this.userObj.emailid);
this.userService.saveNewUserDetails(formData).subscribe(
(data) => {
console.log("user is saved successfully");
}
)
}
}