システムのさまざまな画面でユーザーからの情報入力を受け付けるフォーム。その基本的なコーディングの共通ルールです。
フォームの構造
フォームパーツのマークアップの基本形は、ラベルlabel
、フォームパーツ本体、注釈ブロックp.help-block
をdiv.form-group
で囲んだ形になっています。
.help-block
.help-block
グリッドシステムを使ってdiv.row
> .col-*.*
の中にdiv.form-group
をいれてフォームパーツを配置していきます。
.help-block
.viewonly-text
.help-block
.help-block
.viewonly-text
.help-block
.help-block
.help-block
.help-block
.help-block
.help-block
.help-block
.help-block
.help-block
フォームパーツの状態
未入力のままでは処理を進められない、入力が必須のフォームパーツに付けます。テキストフィールドに限らず、他の種類のフォームパーツでもマークアップは同様です。
包括するdiv
要素に.required
を付けます。
<div class="form-group required"> <label><span class="label-text">ラベル</span></label> <input type="text" class="form-control" placeholder="プレースホルダー"> </div>
表組内の入力項目にはラベルがないため、通常のもの(ラベルに「*」付加)とは必須項目の表示が異なります。マークアップの方法は通常と同じで、包括するdiv
要素に.required
を付けます。
|
|
|
<td> <div class="form-group required"> ... </div> </td>
inputのdisabledは一時的に入力が無効化されたもの(条件が満たされれば有効化する)に使用します。入力を受け付けず表示のみのもの(他の入力に連動してデータベースから引っ張ってきた情報を表示するなど)の場合は、次の表示のみのスタイルを使います。
<input>
にdisabled
を指定します。
<div class="form-group"> <label><span class="label-text">ラベル</span></label> <input type="text" class="form-control" placeholder="プレースホルダー" value="入力内容" disabled> </div>
<label class="checkbox"><input type="checkbox" data-toggle="checkbox" disabled>選択肢1</label> <label class="radio"><input type="radio" data-toggle="radio" id="" disabled>選択肢1</label> <div class="js-tgl-swt js-tgl-swt--rnd"> <input type="checkbox" checked data-toggle="switch" components="switch" disabled/> </div>
ボタンも同様に<a>
、<button>
にdisabled
を指定することでボタンやリンクを無効化できます。
<button class="btn btn-primary" disabled>ボタン(button)</button> <a class="btn btn-primary" href="#" disabled>ボタン(a)</a> <a href="#" disabled>テキストリンク</a>
入力を受け付けず表示のみのもの(他の入力に連動してデータベースから引っ張ってきた情報を表示するなど)に使用します。iOSデバイスではdisabledのものは強制的に淡く表示され、cssで取り消せませんので、disabledで代用しないでください。inputのdisabledは一時的に入力が無効化されたもの(条件が満たされれば有効化する)の場合に使用します。
表示内容
.form-group
に.viewonly
を追加します。<input>
の代わりに<p class="viewonly-text"></p>
を使用します。
<div class="form-group viewonly"> <label><span class="label-text">ラベル</span></label> <p class="viewonly-text">表示内容</p> </div>
入力エラー発生時は当該入力パーツのスタイルを変えて、エラーの原因となっている箇所を明示します。
エラーメッセージ(注釈がある場合は置き換える)
包括する<div>
タグに.has-error
クラスを指定します。
<div class="form-group has-error"> <label><span class="label-text">ラベル</span></label> <input type="text" class="form-control" placeholder="プレースホルダー" value="エラーになる入力内容"> <p class="help-block">エラーメッセージ(注釈がある場合は置き換える)</p> </div>
注釈
<input>
直後に、<p class="help-block">付けたい注釈テキスト</p>
を追加します。
注釈テキスト
<div class="form-group"> <label><span class="label-text">ラベル</span></label> <input type="text" class="form-control" placeholder="プレースホルダー"> <p class="help-block">注釈テキスト</p> </div>
注釈は、同様のマークアップでテキストフィールド以外のパーツにも追加できます。しかしながら、注釈はどうしても必要な場合にのみ使用するようにしましょう。ユーザーにつねに注釈文をきちんと読んで理解し正しく判断したうえでの操作を要求するような負担をかけてはいけません。ユーザーに期待をするのではなく、そもそも注釈が必要でなくなるようにしましょう。情報を関係性や序列、重要度に応じて適切に整理して誤解なく受け取られるようにデザインし、適切な制限がかかった入力方法を採用します。ユーザーがなんども解釈を誤り正しくない行動をするために、注釈文がそこかしこに必要になる状況だとしたら、それは紛らわしくしているデザインのほうに原因があります。