shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【kintone】条件付き必須チェックをJavaScriptで実現する基本事例

前回は、申請時だけ必須チェックを標準機能で実現する方法を紹介しました。ただし、「下書き保存」と「空欄申請の防止」を両立できるのは、JavaScriptカスタマイズまたは専門プラグインに限られます。今回は、JavaScriptで実現する方法の基本事例を紹介します。

前回記事はこちら:【kintone】申請時だけ必須チェックを標準機能で実現する方法の検討 - shikumika's diary

内容:

動作確認は、2026年5月時点のkintone(スタンダードコース)です。

事例のアウトプットイメージ

申請アプリにドロップダウン形式のフィールド(選択肢:申請 / 下書き)を用意し、値が 申請 になったタイミングで 件名(文字列1行)の空欄チェックを実行します。

基本事例の理解を目的としたサンプルです。実際には、チェック対象のフィールドが多い場合や条件が複雑な場合にJavaScriptカスタマイズが力を発揮します。

「申請」状態で件名を空欄のまま保存ボタンを押した直後に、エラーメッセージが表示されている
JavaScriptでエラーメッセージの表示例

具体的な動作イメージ(判定ロジックの3ステップ)

保存ボタンが押された瞬間、次の順番で処理が走ります。

  1. 「申請」かどうかを判定する状態 フィールド(ドロップダウン)の値を読み、申請 かどうかを確認する
  2. 下書きならそのまま保存申請 以外の場合は何もせず終了する。空欄があっても保存できる
  3. 申請時だけ空欄チェックを実行件名 フィールドが空欄なら error にメッセージを代入して保存をストップする

対象フィールドの「必須項目にする」設定は必ずオフにしてください。オンのままだと、JavaScriptより先に標準チェックが走り、下書き保存がブロックされます。

サンプルコード

状態(ドロップダウン)の値が 申請 かどうかで必須チェックの実行を判定し、申請 の場合は 件名(文字列1行)の空欄チェックを実行します。

(function() {
    'use strict';
    // 保存実行時のイベント(PC・モバイル対応)
    const events = [
        'app.record.create.submit',
        'app.record.edit.submit',
        'mobile.app.record.create.submit',
        'mobile.app.record.edit.submit'
    ];
    kintone.events.on(events, function(event) {
        const record = event.record;
        // ステップ1:ドロップダウンの値が「申請」かどうかを判定(フィールドコードが'状態'の事例)
        const isSubmitted = record['状態'].value === '申請';
        // ステップ2:下書き(申請以外)ならそのまま保存
        if (!isSubmitted) {
            return event;
        }
        // ステップ3:申請時だけ空欄チェックを実行(チェック対象はフィールドコード'件名')
        if (!record['件名'].value) {
            record['件名'].error = '申請する場合は必須入力です。';
        }
        return event;
    });
})();

チェック対象フィールドが複数ある場合は、if (!record[...].value) のブロックを追加するなどの対応をします。

まとめ

  • JavaScriptの保存前イベントを使えば、標準機能でできない「下書き保存」と「空欄申請の防止」の両立が可能です。
  • ロジックは「①申請か判定 → ②下書きならスルー → ③申請時だけ空欄チェック」の3ステップ
  • 対象フィールドの「必須項目にする」設定は必ずオフにする。

以上、kintoneで条件付き必須チェックをJavaScriptで実現する基本事例でした。