列の OnChange イベント (クライアント API 参照)

OnChange イベントは、以下の状況で発生します:

  • フォームのカラムのデータが変更され、フォーカスが失われます。 この動作には、ラジオボタンやチェックボックスを使用するようにフォーマットされている Yes/No 列に適用される例外があります。 これらの場合、イベントは、ただちに実行されます。
  • レコードを保存した後など、フォームが更新された際に、サーバー上で変更されたデータを取得して、カラムを更新します。
  • attribute.fireOnchange メソッドが使用されます。

すべての列が OnChange イベントをサポートしています。 列のデータは、OnChange イベントの前後で検証されます。

attribute.setValue メソッドを使ってプログラムで列を変更した場合、OnChange イベントは発生しません。 値を設定したあとに OnChange イベントのイベント ハンドラーを実行したい場合、コードで formContext.data.entity attribute.fireOnchange メソッドを使用する必要があります。 ユーザーがダーティ フォームからの移動時に変更を破棄する場合、列がプログラムで変更されても、OnChange イベントは発生しません。

注意

状態OnChange のイベントをサポートしていますが、この列はフォーム上では読み取り専用であるため、ユーザーの操作によってイベントが発生することはありません。 別のスクリプトでは、列に対して fireOnchange メソッドを使用して、このイベントを発生させることができます。

注意

OnChange イベントは同期します。 非同期コードの解決時にアクションの実行や処理の必要がある OnChange イベント ハンドラでは、非同期コードを使用すべきではありません。 これにより、解決ハンドラーが、アプリ コンテキストが非同期コードが開始されたときと同じままであると想定している場合に問題が発生します。 また、OnChange イベントハンドラでは、同期ネットワークリクエストを行うべきではありません。 これにより、アプリが応答しなくなる可能性があります。

このイベントをサポートするメソッド

列の OnChange イベントをあつかうには、3つの方法があります:

コントロール (クライアント API 参照)

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。