English

Form と Validate

Form<T> は、フォームの値、開始時の値、訪問者がフォームにしたことを持ちます。Validate は、ブラウザとサーバーの両方が評価するルールを与えます。

Form

ページのシグナルの構造体に、型が Form<T> のフィールドとして置きます。

項目概要
Form::newvalue から始まる、まだ触れられておらず送信もされていないフォーム
Form::validateサーバーで、value を T のルールで検査します。

Sig<S, Form<T>>

フォームのシグナルのメソッドが、ページでフォームを読み書きします。

項目概要
valueフォームの値
fieldコントロールを束縛するための、フォームの値のフィールド field
errorfield の下に表示するメッセージ。ないときは ""
form送信すると、ルールのあるフィールドをすべて触れたことにし、すべてのルールが通れば then を実行する <form>
touchfield を訪問者が離れたフィールドとして記録する文
reset開始時の値に戻し、訪問者の操作の記録を消す文
is_dirtyフォームの値が開始時の値と違うかどうか
is_field_dirtyfield が開始時の値と違うかどうか
is_touched訪問者が field を離れたか、field にルールがあってフォームを送信したかどうか
is_submitted開始またはリセットのあと、訪問者がフォームを送信したかどうか
is_validフォームの値が T のルールをすべて通るかどうか
reject次の送信まで、errors をそれぞれのフィールドの下に表示する差分

Validate と Rules

rules はページについて総称的なので、ブラウザ用と Form::validate 用に同じ式を作ります。

項目概要
Validate::rulesform のうち誤りうるフィールドごとに、rules へ検査を足します。
Rules::checkok が偽のあいだ、field に message を出します。
FieldErrors::newメッセージのない状態
FieldErrors::addfield のメッセージを message に置き換えたメッセージの集まり
FieldErrors::messagefield のメッセージ。あれば返します。