大田区から発信するゆるゆる日記

主にITエンジニアに関する備忘録日記。たまに趣味も。何か不備があればコメント頂けると幸いです。Twitterアカウント https://twitter.com/ryuzan03

【Angular】disabledプロパティによるフォームの有効性確認【[disabled]】

※下記の内容に不備がありましたら、コメント頂けると幸いです。また、下記の内容をご使用頂ける場合は自己責任でお願いします。

【目次】

 

概要

「なんとなく理解とオサラバしよう!」のコーナーです!

継続するかは不明!たぶんしない!笑

 

フォームでよく見かけるdisabledプロパティとプロパティバインディングについて正しく理解していきます。

 

disabledプロパティによるフォームの有効性確認

disabledプロパティとは?

disabledとは直訳で

機能しない、無効

などを意味します。

 

disabledプロパティは、JavaScript(TypeScript)では要素のdisabled属性の値を取得したり、値を設定することができます。

 

disabled属性は要素を無効(true)にすることができます。disabled属性を有効(false)にすれば、要素はまた操作できるようになります。

 

 

 

Angularにおけるdisabledプロパティの使い方

Angularにおいては、disabledプロパティはプロパティバインディングと組み合わせて使うことが多くなると思います。

 

プロパティバインディングは、プロパティを[]で囲むバインディングで、コンポーネントからテンプレートに値を伝達することができます。

プロパティバインディングの詳細についてはこちら

 

 

ファームの有効性確認 

Angularではdisabledプロパティを使ってフォームの有効性を確認することが容易にできます。

 

formのテンプレート参照変数の値を利用して、送信(Submit)ボタンのdisabledプロパティを操作します。

 

component.html

<form (ngSubmit)="onSubmit()" #exampleForm="ngForm">
・・・
<button type="submit" class="btn btn-primary" [disabled]="!exampleForm.form.valid>送信</button>
・・・

 

これでフォームでエラーが発生している場合(=requiredルールに違反)、送信(Submit)ボタンも無効になります。

参考資料:

Angular 日本語ドキュメンテーション

 

 

フォームの有効/無効の切替え

 フォームの有効/無効を切替えることもできます。

 

comopnent.ts

<input type="text" [disabled]="isFormDisabled" value="テキスト">
<button type="button" (click)="onClick()">ボタン</button>
・・・
export class AppComponent {
isFormDisabled = false;
onClick() {
this.isFormDisabled = !this.isFormDisabled;
}
}

 

isFormDisabled変数のture/falseをボタンで制御することができました。

 

プロパティバインディングがあることで、disabledプロパティが格段に操作しやすくなりますね。

参考資料:

Angular の[disabled]バインディングはtrueかfalseで効くようです | 株式会社CONFRAGE ITソリューション事業部

 

今後に向けて

もっと難しい内容について記事が書けるようになりたい。

 

参考

素晴らしい記事に感謝いたします。

Angular 日本語ドキュメンテーション

Angular の[disabled]バインディングはtrueかfalseで効くようです | 株式会社CONFRAGE ITソリューション事業部