Top > 開発ガイド > コンポーネント開発Tips集 > 入力チェック
入力チェック(Realtime Validator)
対象バージョン
当ドキュメントはRubricks-0.6.x向けです。
ヘルパータグの種類
Realtime Validatorを利用するためには、以下の3種類のタグを全て記述する必要があります。
- ページ全体を括るタグ
- フォームを括るタグ
- 個別のValidationを規定するタグ
1. ページ全体を括るタグ
rhtmlファイル全体を以下のタグで括ります。
<% validate_page do %> . . . <% end %>
2. フォームを括るタグ
formタグ毎に以下のタグで括ります。
<% validate_form('button_id') do %>
<form>
.
.
.
<input type="submit" id="button_id">
</form>
<% end %>
3. 個別のValidationを規定するタグ
validate(id, options = [])
| Examples: | |
| <%= validate 'rubricks_user_name', [{:required => true}] %> | |
| <%= validate ['min_value', 'max_value'], [{:required => true}, {:numeric_greater_than => {:min_field_id => 'min_value', :max_field_id => 'max_value'}}] %> | |
| Options: | |
| :required |
必須入力チェック
|
| :length |
文字列の文字数制限チェック
|
| :numeric |
数値チェック
|
| :numeric_span |
整数の範囲チェック
|
| :half_char |
半角チェック
|
| :kana |
かなチェック
|
メールフォーマットチェック
|
|
| :url |
URLフォーマットチェック
|
| :date |
日付フォーマットチェック
|
| :time |
時刻フォーマットチェック
|
| :regexp |
正規表現チェック
|
| :numeric_greater_than |
数値の大小チェック(双方のinputボックスに指定する)
|
| :date_greater_than |
日付の大小チェック(双方のinputボックスに指定する)
|
| :time_greater_than |
時刻の大小チェック(双方のinputボックスに指定する)
|
| :date_time_greater_than |
日時の大小チェック(双方のinputボックスに指定する)
|
| :equals |
確認入力チェック(双方のinputボックスに指定する)
|
| :checkbox_count |
チェックボックスの選択数チェック
|
| :ajax |
非同期通信チェック(サーバ側でtrue/falseを判定できる)
|
| :enforce_parent :enforce_child |
関連付け(親フォームオブジェクトの値が正規表現指定に合致すれば子の判定は実施しない)
|
| :fieldset_count |
チェックボックス・ラジオボタンの選択数チェック ※判定対象のエレメントはfieldsetタグで括る ※このバリデーションと、他のバリデーションを同一のvalidate指定に入れ込むことはできない
<fieldset id='check_group'>
<input type='checkbox' id='check1' name='check1' />
<input type='checkbox' id='check2' name='check2' />
<input type='checkbox' id='check3' name='check3' />
</fieldset>
<%= validate 'check1', [{:fieldset_count => {:less_than => 2, :fieldset => 'check_group'}}] %>
<%= validate 'check2', [{:fieldset_count => {:less_than => 2, :fieldset => 'check_group'}}] %>
<%= validate 'check3', [{:fieldset_count => {:less_than => 2, :fieldset => 'check_group'}}] %>
|
| :custom |
独自の入力チェックを指定。 ※独自の入力チェックを行うjavascript関数を指定する。 ※関数には、入力チェック対象となるDOM要素が引数として渡される。 ※入力がOKであればtrueを、そうでなければ画面に表示するメッセージを返す。
|
4. JavaScriptでの操作
RealtimeValidatorは基本的に上記Railsヘルパを使って利用します。 しかし、ある程度以上動的なページを作成する際にはJavaScriptを直接叩く必要がある場合があります。
4.1 バリデーションのリフレッシュ
ユーザがテキスト入力をしなくても、再度バリデーションのリフレッシュをしたい場合は下記のようにします。画面全体のバリデーションがリフレッシュされます。
<script type="text/javascript"> rubricks.common.Validator.refresh(); </script>
ある特定の入力欄のバリデーションのみをリフレッシュする場合は下記のようにして下さい。
<script type="text/javascript">
rubricks.common.Validator.refresh_by_id('input_field_id');
</script>
5. その他 Tips
5.1 複数ボタンの指定
validate_formで指定するボタンのIDは配列で複数指定することが可能です。
<% validate_form(['button_id', 'second_button_id']) do %>
<form>
.
.
.
<input type="submit" id="button_id">
<input type="submit" id="secont_button_id">
</form>
<% end %>
