У меня есть простая форма с одним контролем даты.Когда я набираю недопустимую дату, например 30 февраля 2018 года, элемент управления находится в недопустимом состоянии, и мой стиль CSS включается, и элемент управления отображается с красной рамкой.Но моя проблема в том, что когда пользователь нажимает кнопку сохранения, this.appFormGroup.invalid
возвращает false
и выполняется операция сохранения.Как мне остановить операцию сохранения?(Я хочу сообщить пользователю, что дата недействительна.)
Следующий код демонстрирует проблему, с которой я сталкиваюсь.Спасибо.
файл app.component.ts
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder } from '@angular/forms';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'app';
appFormGroup: FormGroup;
constructor(public formBuilder: FormBuilder) {
}
ngOnInit() {
this.appFormGroup = this.formBuilder.group({
sampleDate: ['']
});
}
onButtonClick() {
if (this.appFormGroup.invalid) {
alert("Invalid");
}
else {
alert("Valid");
}
}
}
файл app.component.html
<form [formGroup]="appFormGroup">
<div >
<div>
<label for="sampleDate">Sample Date</label>
<input type="date" [id]="sampleDate" formControlName="sampleDate" min="" class="form-control-dynamic">
</div>
<button (click)="onButtonClick()">Save</button>
</div>
</form>
файл app.components.css
input[type="date"]:invalid {
border-width : 2px;
border-color: red;
}