コンテンツにスキップ

$p.on

概要

監視項目がイベント発火した時に、記述した任意処理を実行する機能になります。

構文

JavaScript
$p.on(<イベント名>, <監視項目>, <任意の処理>)

各パラメータの説明

パラメータ名 説明
イベント名 Ajaxのイベント名
監視項目 対象となる項目のデータベース上のカラム名
任意処理 イベント発火時の処理

記述例

JavaScript
$p.on('change', 'ClassA', function () {
    console.log('分類Aの値が変更されました。')
})

サンプルコード

Note

コード内の【 ... 】は適宜修正してください。

1. 複数項目の組み合わせで重複チェックする

新規作成・編集画面で、タイトル・対象日・作成者(分類A・分類B・分類C)のいずれかの値が変更されるたびに、3項目の値を結合したキーを分類Gに自動的に設定します。
分類Gに「重複禁止」を設定しておくことで、3項目の組み合わせによる重複を検知できます。

実務での使いどころ

Pleasanterの項目設定にある「重複禁止」は、単一の項目にしか設定できません。
タイトル・対象日・作成者のように、複数項目の組み合わせで重複を防ぎたい場合は、対象項目の値を結合した値を格納する項目を別途用意し、その項目に重複禁止を設定する必要があります。
本サンプルは、その結合キーを自動生成する部分を担います。

事前準備

  1. 重複チェックの対象にしたい3項目を用意します(例:分類A=タイトル、分類B=対象日、分類C=作成者)。
  2. 結合キーを格納する分類項目を1つ用意します(例:分類G)。
    1. 「テーブルの管理 > 項目」タブで分類Gを選択します。
    2. 「重複禁止」にチェックを入れます。
    3. 分類Gは通常の項目として画面に表示したままでも動作します。ユーザの目に触れさせたくない場合は、非表示にする方法を別途検討してください(本サンプルでは非表示化は扱いません)。
  3. スクリプトを登録します。
    1. 「テーブルの管理 > スクリプト」タブで「新規作成」を選択します。
設定項目 設定値
タイトル 任意の名前(例:3項目の重複チェック用キー生成)
スクリプト 下記サンプルコードを貼り付け
出力先 「全て」のチェックを外し、「新規作成」「編集」にチェック
// 分類A・分類B・分類Cの値を結合し、重複チェック用の分類Gに設定する
function setDuplicateKey() {
    $p.set(
        $p.getControl('ClassG'),
        `${$p.getValue('ClassA')}${$p.getValue('ClassB')}${$p.getValue('ClassC')}`,
    );
}

// 分類A・分類B・分類Cのいずれかが変更されたら、結合キーを再生成する
$p.on('change', 'ClassA', function () {
    setDuplicateKey();
});

$p.on('change', 'ClassB', function () {
    setDuplicateKey();
});

$p.on('change', 'ClassC', function () {
    setDuplicateKey();
});