クライアントスクリプト

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:5分
  • クライアントスクリプトを使用すると、フォームの読み込み時、フォームの送信後、フィールドの値の変更時など、クライアントベースのイベントが発生したときに、システムがクライアント (Web ブラウザー) で JavaScript を実行できます。

    クライアントスクリプトを使用して、ユーザーがフォームを使用しているときに、フォーム、フォームフィールド、およびフィールド値を設定します。クライアントスクリプトでは次を行うことができます。

    • フィールドの非表示または表示を切り替える
    • フィールドを読み取り専用または書き込み可能にする
    • ユーザーのロールに基づいてフィールドをオプションまたは必須にする
    • 他のフィールドの値に基づいて 1 つのフィールドの値を設定する
    • ユーザーのロールに基づいて選択リストのオプションを変更する
    • フィールドの値に基づいてメッセージを表示する

    クライアントスクリプトが実行される場所

    onCellEdit クライアントスクリプトを除き、クライアントスクリプトはフォームおよび検索ページにのみ適用されます。フォームのフィールド値を制御するクライアントスクリプトを作成する場合は、別の方法を使用してリスト内のフィールド値を制御する必要があります。
    • フィールド値を編集できるユーザーを制限するアクセス制御を作成します。
    • コンテンツを検証するビジネスルールを作成します。
    • コンテンツを検証するデータポリシーを作成します。
    • onCellEdit() クライアントスクリプトを作成してコンテンツを検証します。
    • テーブルのリスト編集を無効にします。
    注:
    クライアントスクリプトは ServiceNow モバイル アプリケーションではサポートされていません。

    クライアントスクリプトフォーム

    フィールド 説明
    名前 クライアントスクリプトの名前。
    テーブル クライアントスクリプトを適用するテーブル。
    UI タイプ クライアントスクリプトを適用するターゲットユーザーインターフェイス。
    タイプ

    onLoad():システムが最初にフォームをレンダリングするとき、およびユーザーがデータを入力できるようになる前に実行されます。通常、onLoad() クライアントスクリプトは、現在のフォームをクライアントサイドで操作するためやデフォルトのレコード値を設定するために使用されます。

    onSubmit():フォームが送信されると実行されます。通常、onSubmit() クライアントスクリプトがフォーム上のデータを検証して、フォームが正しく送信されるようにします。onSubmit() クライアントスクリプトから false を返すことでフォームの送信を取り消すこともできます。

    onChange():フォーム上の特定のフィールド値が変更されたときに実行されます。onChange() クライアントスクリプトには、以下のパラメーターを指定する必要があります。
    • control:値が変更された DHTML ウィジェット。
      注:
      control にはモバイルおよび サービスポータルではアクセスできません。
    • oldValue:レコードがロードされたときのウィジェットの値。
      注:
      HTML フィールドタイプに対して古い値は返されません。
    • newValue:変更後のウィジェットの値。
    • isLoading:フォームのロードの一環として変更が行われるかどうかを示します。
    • isTemplate:テンプレートのロードの一環として変更が行われるかどうかを示します。
    onCellEdit():リストエディターがセル値を変更したときに実行されます。onCellEdit() クライアントスクリプトには、以下のパラメーターを指定する必要があります。
    • sysIDs:編集中の全アイテムの sys_id のアレイ。
    • table:編集中のアイテムのテーブル。
    • oldValues:編集中のセルの古い値。
    • newValue:編集中のセルの新しい値。
    • callback:コールバックによって、関連するその他のセル編集スクリプトの実行に進みます。true がパラメーターとして渡されると、他のスクリプトが実行されるか、他にスクリプトがない場合は変更がコミットされます。false がパラメーターとして渡されると、それ以上のスクリプトは実行されず、変更はコミットされません。
    フィールド名 スクリプトが適用されるフィールドの名前。スクリプトがフィールド値の変更に応答する場合にのみ使用できます (onChange または onCellEdit スクリプトタイプ)。
    アプリケーション このクライアントスクリプトが存在するアプリケーション。
    アクティブ 選択すると、クライアントスクリプトが有効になります。クライアントスクリプトを無効にするには、このフィールドの選択を解除します。
    継承 クライアントスクリプトが拡張テーブルに適用されるかどうかを示します。
    グローバル true の場合、クライアントスクリプトはテーブルのすべてのビューで実行されます。
    表示 [グローバル] が選択されていない場合にのみ表示されます。クライアントスクリプトが実行されるビュー。
    説明 クライアントスクリプトの機能と目的を説明するコンテンツ。
    メッセージ getMessage('[message]') を使用したローカライズ済みメッセージとして、クライアントスクリプトに提供されるテキスト文字列 (各行に 1 つ)。詳細については、「クライアントスクリプトメッセージの翻訳」を参照してください。
    スクリプト クライアントスクリプトが含まれています。
    スクリプトを隔離 新しいクライアントスクリプトは、DOM への直接アクセスを無効にして、Strict モードで実行されます。jQuery、prototype、および window オブジェクトへのアクセスも無効になります。スクリプト単位でこれを無効にするには、このフォームを構成して [スクリプトを隔離] チェックボックスをオンにします。すべての新しいグローバルスコープのクライアント側スクリプトに対してこの機能を無効にするには、システムプロパティ glide.script.block.client.globals を false に設定します。