ここまでは主にデータを画面に表示することを中心にやってきました。今回からは入力、つまり文字などをユーザーに入力してもらう部分を扱っていきます。
inputタグの基本
入力エリアを作るには、基本的にHTMLのinputタグを使います。Home.razorを開き、「Hello, world!」の下に入力エリアを追加していきます。
図1 ソリューションエクスプローラーからHome.razorを開く
図2 Home.razorの編集前の状態
h1タグの下に、次のようにinputタグを追加します。
<input />
図3 inputタグを追加したところ
inputタグには type 属性があり、何も指定しない場合や文字を入力したい場合は type=”text” を指定します。
<input type="text" />
図4 type=”text” を指定したところ
ブラウザーで確認すると、次のように文字を入力できる欄が表示されます。
図5 ブラウザーで確認した入力エリア
type属性の種類
type属性にはtext以外にもさまざまな種類が用意されています。Visual Studioの入力候補(IntelliSense)を見ると、date、datetime、email、file、hiddenなど多くの候補が一覧表示されます。
図6 type属性の入力候補一覧
type属性は見た目に影響するものもありますし、たとえばemailを選んでおくと入力チェック(バリデーション)に利用できたり、スマートフォンなどで入力欄をタップしたときに表示されるキーボードの種類が変わったりします。通常のtextであればアルファベット中心のキーボードになりますが、emailであれば@マークが押しやすいキーボードが表示されるようになります。基本的には、どのようなデータを入力してもらいたいかを考えて、それに合ったtypeを選ぶことになります。
value属性で初期値を表示する
入力エリアに初期値を表示したい場合は、value属性を使います。
<input type="text" value="AAA" />
図7 value=”AAA” を追加したところ
ブラウザーで確認すると、入力エリアに「AAA」が初期値として表示されます。
図8 初期値「AAA」が表示された入力エリア
Bootstrapで見た目を整える
このままでも入力エリアとして機能しますが、Bootstrapのクラスを使うともう少しおしゃれな見た目にできます。class属性に “form-control” を指定します。
<input type="text" value="AAA" class="form-control" />
図9 class=”form-control” を追加したところ
ブラウザーで確認すると、枠線や余白が整った見た目のよい入力エリアになります。
図10 form-controlクラスを適用した入力エリア
Bootstrapについてもう少し詳しく調べたい場合は、「Bootstrap form」などで検索すると、公式サイトのフォーム関連のドキュメントにたどり着きます。「フォーム」のページから「フォームコントロール」を選ぶと、ラベル付きの入力欄の例が掲載されています。
図11 Bootstrap公式ドキュメントのフォームコントロールの例
その下にはHTMLのサンプルコードも掲載されており、たとえば次のように label タグと input type=”email” を組み合わせた例が確認できます。このように、欲しい見た目に近いサンプルを見つけたら、それをコピーして自分のプロジェクトに貼り付けるだけで同じような表示を再現できます。
図12 ドキュメントに掲載されているHTMLのサンプルコード
<div class="mb-3"> <label for="exampleFormControlInput1" class="form-label">Email address</label> <input type="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com"> </div> <div class="mb-3"> <label for="exampleFormControlTextarea1" class="form-label">Example textarea</label> <textarea class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea> </div>
図13 サンプルコードをHome.razorに貼り付けたところ
ブラウザーで確認すると、最初に作った入力エリアの下に、ラベル付きのメール入力欄とテキストエリアが表示されます。
図14 貼り付けたサンプルをブラウザーで確認したところ
今回はサンプルの確認だけなので、貼り付けた部分は一旦削除しておき、最初に作成したinputタグのみを残しておきます。
図15 サンプル部分を削除し、元のinputタグのみを残した状態
まとめ
このように、input タグを使うことで入力エリアを作成でき、Bootstrapのサイトから用途に合ったサンプルを探して貼り付ければ、見た目の良いフォームも簡単に作れます。今回は入力エリアを作成し、そこに文字を入力できることや、プログラム側から値を表示させる(value属性)ところまでを確認しました。入力した値を使って保存やチェックなど、プログラムの中で実際に活用する部分こそが入力エリアの本来の意味ですが、そのやり方については、次回以降に双方向データバインドなどの仕組みとあわせて扱っていきます。
A01_はじめに
A02_バージョンの確認
A03_プロジェクトの作成
A04_アプリの実行
A05_サンプルプログラムの構成
A06_Razorコンポーネント
A07_Razor構文
A08_@pageでURLを指定する
A09_@rendermode
A10_PageTitle
A11_HTMLの見出し
A12_pタグ
A13_単方向データバインド
A14_単方向データバインドの詳細
A15_Bootstrap
A16_ボタンクリックイベント
A17_イベント引数の受け取り方
A18_ここまでのまとめ
B01_新しいWebページを追加する方法
B02_サイドバーから画面を表示する
B03_サイドバーのアイコンを変更する方法
B04_計測値を表示する
B05_変数に置き換える
B06_最新の値でデータを更新する
B07_@usingで通常のC#コードを呼び出す
B08_画面遷移_aタグ
B09_画面遷移_aタグの見た目をボタンにする
B10_画面遷移_NavigationManagerでの遷移
B11_画面間のパラメータの受け渡し方法
B12_EscapeDataStringでエスケープする
B13_複数のパラメータを渡す
B14_任意のパラメータにする
B15_string以外の型をパラメータで使う方法
B16_DateTime型をパラメータで渡す方法
B17_引数2個のURLも型指定に変更する
B18_パラメータ属性をつけるときの注意点
B19_OnParametersSet
B20_OnInitialized
B21_OnInitializedが2回通る問題の対応
B22_ブラウザが開いている間の値を記憶する方法
B23_値の受け渡しとしてのProtectedSessionStorage
B24_非同期を想定したUIの制御
C01_一覧表示
C02_非同期での一覧表示
C03_table-striped
D01_入力エリア
D02_双方向データバインド
D03_入力データをリアルタイムで通知する方法
D04_placeholder
D05_入力エリアの横幅の調整
D06_テキストチェンジイベントを拾う方法
D07_プルダウン
D08_プルダウンのbootstrap
D09_プルダウンの選択している値をデータバインドで操作する
D10_プルダウンにリストの値を表示する
D11_プルダウンに未選択行を入れる
D12_プルダウンの入力を禁止する
D13_プルダウンのチェンジイベントを取得する
D14_チェックボックス
D15_チェックボックスにラベルを付ける
D16_複数のチェックボックスを並べる
D17_ラジオボタン
D18_ラジオボタンのデータバインド
D19_ラジオボタンのチェンジイベント
D20_ラジオボタンにbootstrapを適応する