【kintone】JavaScriptの書き方(フィールド編集不可・非表示)【カスタマイズ基礎編】

前回の記事ではkintoneのイベント別に処理を行う書き方について解説しました。

続いて、kintoneにおけるJavaScriptカスタマイズでは「フィールドの編集可/不可の切替」や「フィールドの非表示」を定義できます。

この記事ではレコード内のフィールドの表示切替について解説します。

この記事で何が分かる?
  • kintoneのJavaScriptカスタマイズでは、フィールドの表示状態を定義できます。
  • 「event.record.フィールドコード.disabled = true;」でフィールドを編集不可にできます。
  • 「kintone.app.record.setFieldShown(‘フィールドコード’, false);」でフィールドを非表示にできます。

kintoneのJavaScriptカスタマイズにおいて、最も使うものがフィールド操作です。

フィールドの値を書き換えることはもちろんのこと、編集不可にしたり、非表示にしたりできます。

予約有無(ラジオボタン)が「なし」の場合は予約日を編集不可にする

予約有無(ラジオボタン)が「なし」の場合は予約日を非表示にする

なんていったことが可能です。

それぞれの書き方を見てみましょう。

目次

フィールドの編集可/不可を切り替える

フィールドの編集の可/不可を設定するには、eventから取得したrecordオブジェクトのフィールドのdisabledプロパティに対して、true/falseを指定します。

以下のように記述します。

(() => {

	'use strict';

	kintone.events.on(['app.record.create.change.予約有無', 'app.record.edit.change.予約有無'], (event) => {
		const record = event.record;
		if (record.予約有無.value == 'あり') {
			// 予約有無の値が「あり」の場合
			record.予約日.disabled = false;	// 編集可
		} else {
			// 予約有無の値が「あり」以外の場合
			record.予約日.disabled = true;	// 編集不可
		}
		return event;
	});

})()

予約有無(ラジオボタン)の値変更時に選択された値をチェックし、「あり」の場合は予約日(日付)を編集可にし、それ以外の場合は予約日(日付)を編集不可にするという処理です。

※( )内はフィールドタイプです。
※フィールドの指定はフィールドコードを記述しましょう。フィールド名ではエラーになります。

「record.予約日.disabled = true;」のように「true」を指定すると編集不可になります。

反対に「false」を指定すると編集可になります。

処理の最後には「return event;」を忘れず記述しましょう。

フィールドの表示/非表示を切り替える

(() => {

	'use strict';

	kintone.events.on(['app.record.create.change.予約有無', 'app.record.edit.change.予約有無'], (event) => {
		const record = event.record;
		if (record.予約有無.value == 'あり') {
			// 予約有無の値が「あり」の場合
			kintone.app.record.setFieldShown('予約日', true);	// 表示
		} else {
			// 予約有無の値が「あり」以外の場合
			kintone.app.record.setFieldShown('予約日', false);	// 非表示
		}
		return event;
	});

})()

予約有無(ラジオボタン)の値変更時に選択された値をチェックし、「あり」の場合は予約日(日付)を表示し、それ以外の場合は予約日(日付)を非表示にするという処理です。

「kintone.app.record.setFieldShown(‘フィールドコード’, false);」のように「false」を指定すると非表示になります。

反対に「true」を指定すると表示になります。

フィールドコードはシングルクォート(またはダブルクォート)で囲みます。

この記事のまとめ
  • kintoneのJavaScriptカスタマイズでは、フィールドの表示切替を定義できます。
  • 「event.record.フィールドコード.disabled = true;」でフィールドを編集不可にできます。
  • 「kintone.app.record.setFieldShown(‘フィールドコード’, false);」でフィールドを非表示にできます。

他のフィールドの値に合わせて編集状態を切り替えたり、非表示にしたりできるので便利です。

ユーザーによって表示するフィールドを切り替えるなんてことに応用することができます。

次回の記事ではフィールドの値操作について解説します。

目次