無効な日付が入力された場合、入力した値を保存または保持して、ユーザーに表示できるようにします。どうすればよいですか?
背景:ngx-bootstrap v5.1.0 datepickerとangular 7.2.15。が無効(例:MM/DD/YYYYを使用して2020年9月99日)の場合、入力フィールドを離れると、「無効な日付」という文字列が入力ボックスに自動的に挿入されます。
この手法は機能しますが、さらに、ユーザーが入力した日付について何らかのフィードバックをユーザーに提供したいと考えています。具体的には、入力した値が無効です。この場合、2020年9月9日になります。
無効な日付の検証を開始することはできますが、最初に入力した日付の値を取得できないため、ユーザーは何を入力したのか、なぜ無効なのかを知ることができます。
フィールドに入力された元の値を取得または保持するにはどうすればよいですか?私はonChangeイベントとvalueChanges
を試しましたが、ngx-datepicker
はこれをオーバーライドしているように見えるため、フィールドを離れるまで起動しません。
ngx-bootstrap-datepickerにはカスタム出力イベントbsValueChange
があります
HTML input
要素に出力を追加します。
<input type="text"
class="form-control"
[minDate]="minDate"
[maxDate]="maxDate"
#dp="bsDatepicker"
(bsValueChange)="onDateChange($event)"
bsDatepicker [(bsValue)]="myDateValue">
次に、コンポーネントtsでこれを処理します。
myDateValue: Date;
previousDate: Date;
ngOnInit() {
this.myDateValue = new Date();
}
onDateChange(newDate: Date) {
this.previousDate = new Date(newDate);
Stackblitzの例: https://stackblitz.com/edit/ngx-bootstrap-datepicker-taconz