【kintone】JavaScriptカスタマイズの基本とイベント一覧

「kintoneでもっと高度なカスタマイズをしたい」「でも、JavaScriptは難しそう…」

そう感じたことはありませんか?

この記事ではkintoneのJavaScriptカスタマイズの基本よく使うイベント一覧を初心者向けに分かりやすく解説します。

目次

kintoneのJavascriptカスタマイズとは?

kintoneのJavaScriptカスタマイズとは、

JavaScriptやCSSを使って、kintoneの画面や動作を自由に変更できる機能のことです。

Javascriptカスタマイズ画面

追加費用なしで、自分の思い通りにカスタマイズできるのが大きな魅力です。

一方で、プログラミングの知識が必要になるため、初心者の方にとってはハードルが高く感じやすいのも事実です。

JavaScriptカスタマイズの仕組み

ここではJavaScriptカスタマイズがどのような仕組みで動いているのかを解説します。

STEP
イベントが発火する
  • 一覧画面が表示されたとき
  • レコードを登録したとき
  • フィールドの値が変更されたとき

など、kintone上で特定の操作が行われるとイベントが発生します。

イベントとは、JavaScriptを実行するきっかけとなるタイミングのことです。

STEP
JavaScriptが実行される

イベントが発生すると、登録しておいたJavaScriptが実行されます。

例えば、次のような処理を行うことができます。

  • レコードを条件に応じて色分けする
  • 曜日を自動で表示する
  • レコードをCSVとして週次で出力する

このように、イベントをきっかけに、あらかじめ記述した処理が実行されるのがJavaScriptカスタマイズの仕組みです。

STEP
画面やデータが変わる

STEP2で実行されたJavaScriptの処理によって、

kintoneの画面表示やレコードの内容がリアルタイムで変更されます。

つまり、「イベント → JavaScript → 画面・データ変更」という流れでカスタマイズが動作しています。

kintoneのJavaScriptカスタマイズの仕組み(イベント→JavaScript→画面・データ変更)

ポイント

JavaScriptカスタマイズは

イベント → JavaScript → 画面・データ変更という流れで動作します。

まず押さえるJavaScriptの基本

kintoneのJavaScriptカスタマイズは、最初に独特のルールを知っておくことが重要です。

ここでは、初心者がつまずきやすい基本ポイントだけを解説します。

イベントの考え方

kintoneのJavaScriptは、常に動いているわけではありません。

決められたタイミング(イベント)が発生したときだけ実行されます。

「画面を開いたとき」「保存する直前」など、

何をしたいかより先に「いつ動かすか」を考えるのがポイントです。

最初は「画面表示時」「保存前」の2つを押さえれば十分です。

recordオブジェクトとは

イベントが発生すると、kintoneは現在のレコード情報を

record(event.record)としてJavaScriptに渡します。

この中には、フィールドの値や入力中のデータが入っています。

JavaScriptカスタマイズでは、このrecordを操作して値を読む・書き換えることを行います。

フィールドコードとは

kintoneのフィールドには、

画面に表示される「フィールド名」と、JavaScriptで使う「フィールドコード」があります。

JavaScriptでは必ずフィールドコードを使用します。

フィールド名をそのまま書いても動かない点に注意しましょう。

フィールドコードは、アプリの設定画面から確認できます。

return event の意味

イベント処理の最後にはreturn event;を記述します。

これは「この内容で処理を続けてOK」とkintoneに伝えるための決まりです。

値を変更した場合でも、returnしないと画面に反映されません。

カスタマイズの適用方法

JavaScriptを書いただけでは、kintone上では動きません。

アプリ設定の「JavaScript / CSSでカスタマイズ」から登録する必要があります。

登録後は、必ずアプリを更新しましょう。

kintoneで使えるイベント一覧

kintoneで使えるイベント一覧を一挙ご紹介します。

画面ごとにどんなイベントが使えるのかを、カテゴリ別にまとめました。

レコード作成画面のイベント

新しくレコードを作成するときに発火するイベントです。

初期値の設定や、保存前の入力チェックなどでよく使われます。

スクロールできます
イベント名発火タイミング主な用途
app.record.create.show新規レコード作成画面を表示したとき初期値設定、表示制御
app.record.create.submit保存ボタン押下時(保存前)入力チェック、保存キャンセル
app.record.create.submit.successレコード保存成功後通知、後処理

レコード編集画面のイベント

既存レコードを編集する際に発火するイベントです。

編集時のみ処理を分けたい場合によく利用されます。

スクロールできます
イベント名発火タイミング主な用途
app.record.edit.show編集画面を表示したとき編集時の表示制御
app.record.edit.submit保存ボタン押下時(保存前)入力チェック
app.record.edit.submit.successレコード更新成功後更新後処理

フィールド変更イベント

特定のフィールドの値が変更されたタイミングで発火するイベントです。

値の自動計算や、他フィールドとの連動処理に使われます。

スクロールできます
イベント名発火タイミング主な用途
app.record.create.change.フィールドコード新規作成画面で指定フィールド変更時自動計算、入力補助
app.record.edit.change.フィールドコード編集画面で指定フィールド変更時値連動、制御処理

一覧画面(index)のイベント

レコード一覧画面を表示したときに発火するイベントです。

一覧の見た目をカスタマイズしたい場合に使用します。

スクロールできます
イベント名発火タイミング主な用途
app.record.index.showレコード一覧画面を表示したとき行の色付け、一覧カスタマイズ

レコード詳細画面のイベント

レコードの詳細画面を表示したときに発火するイベントです。

ボタンの追加や表示内容のカスタマイズに利用されます。

スクロールできます
イベント名発火タイミング主な用途
app.record.detail.showレコード詳細画面を表示したとき表示装飾、ボタン追加

よくあるつまずきポイント

kintoneのJavaScriptカスタマイズでは、初心者がつまずきやすいポイントがいくつかあります。

ここでは、特に多く見られるつまずきポイントを紹介します。

イベントの仕組みが理解できていない

kintoneのJavaScriptカスタマイズでは、「どの画面で・いつ処理が動くか」を

イベント単位で指定する必要があります。しかし初心者の多くは、

  • 一覧・詳細・編集画面の違いが曖昧
  • show と submit の役割を混同している

といった状態で書き始めてしまい、「コードは合っているのに動かない」状況に陥ります。

ポイント

まずはイベント=発火タイミングと画面の組み合わせと理解するのが重要です。

フィールドコード周りでつまずく

kintoneでは、JavaScriptからフィールドを扱う場合、

画面に表示されている名前ではなく「フィールドコード」を使います。

よくあるミスは、

  • 表示名をそのままコードに書いてしまう
  • 全角・半角や記号の違いに気づかない

サブテーブルの参照方法がわからないといったものです。

ポイント

カスタマイズ前にフィールド設定画面でコードを必ず確認しましょう。

書いたコードが反映されない

「値を変更したのに画面が変わらない」という悩みも非常に多いです。

原因の多くは、

  • return event; の書き忘れ
  • アプリの「更新」をしていない
  • スマホ用イベントを書いていない

など、kintone特有のルールを見落としているケースです。

ポイント

コード → 保存 → アプリ更新までが1セットです。

エラーの確認方法がわからない

kintoneのJavaScriptエラーは、画面上にはほとんど表示されません。

そのため、

  • エラーが出ていることに気づかない
  • どこで止まっているかわからないという状態になりがちです。

ポイント

Chromeの開発者ツール(Console)を見る癖をつけるだけで、トラブル解決スピードは一気に上がります。

まとめ

今回はJavaScriptカスタマイズの基本とイベント一覧を解説しました。

基本を理解すれば、コードも「意味をわかった状態」で使えるようになります。

まずは、よく使うイベントを1つ選び、簡単な表示制御から試してみてください。

その他のkintoneカスタマイズ手法はこちら👇

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次