前回は、申請時だけ必須チェックを標準機能で実現する方法を紹介しました。ただし、「下書き保存」と「空欄申請の防止」を両立できるのは、JavaScriptカスタマイズまたは専門プラグインに限られます。今回は、JavaScriptで実現する方法の基本事例を紹介します。
前回記事はこちら:【kintone】申請時だけ必須チェックを標準機能で実現する方法の検討 - shikumika's diary
内容:
動作確認は、2026年5月時点のkintone(スタンダードコース)です。
事例のアウトプットイメージ
申請アプリにドロップダウン形式のフィールド(選択肢:申請 / 下書き)を用意し、値が 申請 になったタイミングで 件名(文字列1行)の空欄チェックを実行します。
基本事例の理解を目的としたサンプルです。実際には、チェック対象のフィールドが多い場合や条件が複雑な場合にJavaScriptカスタマイズが力を発揮します。

具体的な動作イメージ(判定ロジックの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で実現する基本事例でした。