bricks/docs/ja/form.md
2025-11-19 12:30:39 +08:00

8.2 KiB
Raw Blame History

InlineForm

コントロール機能:行内に送信可能なフォームを埋め込むためのもので、フィールド入力、検証、ツールバー操作(送信、リセット、キャンセル)をサポートしています。軽量なフォームを埋め込みたいシーンに適しています。
タイプ:通常コントロール
親クラスコントロールbricks.FormBase

初期化パラメータ

パラメータ名 説明
fields 配列 フォームフィールド設定配列。各フィールドオブジェクトには name、label、uitype などの情報が含まれます。
height 文字列 任意。デフォルトは "100%"。コントロールの高さを設定します。
width 文字列 任意。デフォルトは "100%"。コントロールの幅を設定します。
overflow 文字列 任意。デフォルトは "auto"。コンテンツがオーバーフローした際の表示方法を制御します。

注意:すべてのオプションはコンストラクタに opts 経由で渡されます。

主要イベント

イベント名 発火条件 コールバック引数
submit(data) ユーザーが「送信」ボタンをクリックし、データが検証を通過した後に発火します。 data: FormData オブジェクトまたは通常のオブジェクト。フォームデータを含みます。
submited(resp) 送信リクエスト完了後(成功・失敗問わず)に発火します。 resp: レスポンスオブジェクト。await resp.json() で戻り値を取得できます。
cancel ユーザーが「キャンセル」ボタンをクリックしたときに発火します。 引数なし。
reset ユーザーが「リセット」ボタンをクリックしたときに発火します。 引数なし。
カスタムコマンドイベント ツールバーにカスタムボタンが追加され、action または名前が設定されている場合にクリック時に発火します。 event.params にボタン情報が含まれます。

Form

コントロール機能:完全なフォームコンテナーコントロールで、タイトル、説明文、複数フィールドのレイアウト、テキスト/非テキストフィールドの分離、ツールバーの自動生成、送信URLおよびメソッドの設定が可能です。独立したページやポップアップ内のフル機能フォームに適しています。
タイプ:コンテナーコントロール
親クラスコントロールbricks.FormBase

初期化パラメータ

パラメータ名 説明
title 文字列 任意。フォームのタイトル。大きな文字で表示されます。
description 文字列 任意。フォームの説明文。タイトルの下に表示されます。
fields 配列 必須。フィールド設定リスト。構造は InlineForm と同じです。
submit_url 文字列 任意。フォーム送信先の URL。設定すると自動的に HTTP リクエストが送信されます。
method 文字列 任意。HTTP メソッド。デフォルトは 'POST'
notoolbar 真偽値 任意。デフォルトは false。デフォルトのツールバー(送信/リセット/キャンセル)を非表示にするかどうか。
toolbar オブジェクト 任意。デフォルトツールバーの拡張または置き換え設定。構造は { tools: [...] }
input_layout 文字列 任意。入力フィールドのレイアウト方式。"VBox"(垂直)または "HBox"(水平)をサポート。デフォルトは "VBox"
dataurl 文字列 (予約)初期データ読み込み用のインターフェースアドレス(現時点では直接使用されていません)。

主要イベント

イベント名 発火条件 コールバック引数
submit(data) フォーム送信前に検証通過後に発火。データの中断や前処理に利用可能。 data: 送信されるデータオブジェクトまたは FormData。
submited(resp) submit_url へのリクエスト送信完了後に発火。 resp: Response オブジェクト。レスポンス結果の処理に利用可能。
cancel ユーザーが「キャンセル」ボタンをクリックしたときに発火。 引数なし。
reset ユーザーが「リセット」ボタンをクリックしたときに発火。 引数なし。
カスタムイベント ツールバー内のカスタムボタンがクリックされ、action またはイベント名が定義されている場合に発火。 event.params にボタンのメタデータが含まれます。

FormBody

コントロール機能Form 内部で使用される本体コンテンツ領域。すべての非テキストフィールド(FieldGroup 経由)とテキストフィールド(読み取り専用表示)をレンダリングし、実際の入力エリアを保持するコンテナです。
タイプ:コンテナーコントロール
親クラスコントロールbricks.VScrollPanel

初期化パラメータ

パラメータ名 説明
form オブジェクト 所属するフォームインスタンス。フィールド定義や name_inputs などの状態にアクセスするために使用。
opts オブジェクト 設定項目。自動的に width: '100%'height: '100%' が設定されます。

注:このコントロールは通常、開発者が直接作成するものではなく、Form の構築過程で内部的にインスタンス化されます。

主要イベント

このコントロール自体は外部へイベントを発行しませんが、コンテナーとして VScrollPanel のスクロール関連機能を継承しており、主に視覚的な表示に使用されます。

  • 業務イベントを主動的に発火させません。
  • 子コントロール(例:入力フィールド)の変更は上位の Form の状態に影響を与えます。

FieldGroup

コントロール機能:補助クラス。フォーム内のフィールドグループ(入れ子の group 構造も可を再帰的に構築するためのもので、フィールドをレイアウトルールに従って動的列DynamicColumnや入力コンテナVBox/HBoxに組織化します。
タイプ:通常コントロール(ロジックコンポーネント)
親クラスコントロール:なし(基本クラス)

初期化パラメータ

パラメータ名 説明
opts オブジェクト 現在は実際には使用されていません。将来の拡張性のために保持されています。

注:このクラスは UI コントロールではなく、DOM を直接レンダリングしません。構築ロジックモジュールとしてのみ存在します。

主要イベント

このクラスにはイベント機構はなく、同期メソッド呼び出しにのみサービスを提供します:

  • build_fields(form, parent, fields)核心メソッド。再帰的にフィールドUIを生成し、指定された親コンテナにマウントします。

説明まとめ

  • InlineFormForm はユーザーが直接使用できるフォームコントロールです。
  • FormBodyFieldGroup は内部実装コンポーネントであり、通常は個別にドキュメント化して使用する必要はありません。
  • すべてのフォームコントロールは、統一されたデータ収集、検証、送信プロセスを共有しています。
  • ファイル型フィールドfile/audio/videoは、FormData を使用することで自動認識されます。
  • ツールバーは高度なカスタマイズ拡張をサポートしています。