Form と Validate
Form<T> は、フォームの値、開始時の値、訪問者がフォームにしたことを持ちます。Validate は、ブラウザとサーバーの両方が評価するルールを与えます。
Form
ページのシグナルの構造体に、型が Form<T> のフィールドとして置きます。
| 項目 | 概要 |
|---|---|
Form::new | value から始まる、まだ触れられておらず送信もされていないフォーム |
Form::validate | サーバーで、value を T のルールで検査します。 |
Sig<S, Form<T>>
フォームのシグナルのメソッドが、ページでフォームを読み書きします。
| 項目 | 概要 |
|---|---|
value | フォームの値 |
field | コントロールを束縛するための、フォームの値のフィールド field |
error | field の下に表示するメッセージ。ないときは "" |
form | 送信すると、ルールのあるフィールドをすべて触れたことにし、すべてのルールが通れば then を実行する <form> |
touch | field を訪問者が離れたフィールドとして記録する文 |
reset | 開始時の値に戻し、訪問者の操作の記録を消す文 |
is_dirty | フォームの値が開始時の値と違うかどうか |
is_field_dirty | field が開始時の値と違うかどうか |
is_touched | 訪問者が field を離れたか、field にルールがあってフォームを送信したかどうか |
is_submitted | 開始またはリセットのあと、訪問者がフォームを送信したかどうか |
is_valid | フォームの値が T のルールをすべて通るかどうか |
reject | 次の送信まで、errors をそれぞれのフィールドの下に表示する差分 |
Validate と Rules
rules はページについて総称的なので、ブラウザ用と Form::validate 用に同じ式を作ります。
| 項目 | 概要 |
|---|---|
Validate::rules | form のうち誤りうるフィールドごとに、rules へ検査を足します。 |
Rules::check | ok が偽のあいだ、field に message を出します。 |
FieldErrors::new | メッセージのない状態 |
FieldErrors::add | field のメッセージを message に置き換えたメッセージの集まり |
FieldErrors::message | field のメッセージ。あれば返します。 |