Kintoneを利用した業務アプリでは、データ入力の際にヒューマンエラーによるミスを防ぐことが重要です。Kintoneには標準のバリデーション機能がありますが、さらに柔軟に対応したい場合は、JavaScriptを使用したカスタムバリデーションを追加することができます。この記事では、Kintoneアプリにカスタムバリデーション機能を実装する具体的な方法を解説します。
Table of Contents
1. バリデーション機能の重要性
データ入力時のバリデーションは、以下のようなミスを防ぐために役立ちます。
- 数値フィールドに文字列が入力されてしまう
- 必須フィールドが未入力のまま保存される
- フォーマットが異なるデータが入力される(例:日付やメールアドレス)
バリデーションを適切に設定することで、これらのミスを防ぎ、データの品質を向上させることが可能です。
2. Kintone標準機能のバリデーション設定
Kintoneには、標準で以下のようなバリデーション機能が提供されています。
- 必須フィールドの設定:フィールドが空の場合に警告
- 数値フォーマット:数値フィールドに文字列が入力された場合の警告
- 日付やメールアドレスのフォーマットチェック:適切なフォーマットでない場合の警告
しかし、特定の条件に基づいたバリデーションや、複数フィールドの組み合わせによるチェックなど、より複雑な要件に対応するにはJavaScriptによるカスタマイズが必要です。
3. カスタムバリデーションを追加する方法
以下では、特定のフィールドに対してカスタムバリデーションを追加する具体的な手順を紹介します。
3.1 フォームの設定
まず、Kintoneアプリのフォームにバリデーションを追加したいフィールドを用意します。今回は以下の例で進めます。
- フィールド名:
年齢
- フィールドコード:
age
年齢
フィールドに対して、「18歳未満は入力できない」というバリデーションを追加します。
3.2 JavaScriptカスタマイズの設定
次に、JavaScriptでバリデーションを設定します。Kintoneのカスタマイズ画面からJavaScriptファイルをアップロードし、以下のようなコードを追加します。
kintone.events.on('app.record.create.submit', function(event) {
var record = event.record;
var age = record.age.value;
// 年齢フィールドが空かどうかを確認
if (!age) {
event.error = '年齢を入力してください。';
return event;
}
// 年齢が18歳未満の場合にエラーメッセージを表示
if (age < 18) {
event.error = '18歳未満は入力できません。';
return event;
}
return event;
});
このコードは、レコード作成時に実行され、年齢フィールドが空である場合や、18歳未満である場合にエラーメッセージを表示し、レコードの保存を防ぎます。
Kintone内では以下のようにエラーメッセージが表示されます。
3.3 複数フィールドのバリデーション
次に、複数のフィールドに対してバリデーションを行いたい場合の方法を紹介します。たとえば、電話番号
フィールド(フィールドコード:phone_number)に数値のみを入力できるようにする場合です。
kintone.events.on('app.record.create.submit', function(event) {
var record = event.record;
var phoneNumber = record.phone_number.value;
// 電話番号が数字のみで構成されているかチェック
var phonePattern = /^[0-9]+$/;
if (!phonePattern.test(phoneNumber)) {
event.error = '電話番号には数字のみを入力してください。';
return event;
}
return event;
});
このコードでは、電話番号フィールドに数値以外の文字が入力された場合、エラーメッセージを表示し、保存を防ぎます。
Kintone内では、以下のエラーメッセージが表示されます。
4. レコードの更新時にバリデーションを追加する
上記ではレコードの作成時にバリデーションを行いましたが、レコードの更新時にもバリデーションを追加したい場合、以下のようにイベントハンドラーを変更します。
kintone.events.on(['app.record.create.submit', 'app.record.edit.submit'], function(event) {
var record = event.record;
var age = record.age.value;
if (!age || age < 18) {
event.error = '18歳未満は入力できません。';
return event;
}
return event;
});
このコードでは、レコードの作成時および編集時の両方でバリデーションが行われます。
5. まとめ
Kintoneにカスタムバリデーションを追加することで、より高度なデータ入力ミス防止が可能になります。標準のバリデーション機能に加えて、特定の業務要件に合わせたバリデーションを実装することで、データの品質をさらに向上させることができます。
この記事では、基本的なバリデーションの実装方法を紹介しましたが、実際の業務に合わせて複雑な条件や複数フィールドを組み合わせたバリデーションを行うことも可能です。Kintoneのカスタマイズ機能を活用して、業務効率化とデータの正確性向上を実現しましょう。
このサイトではほかにも、Kintoneの様々なカスタマイズ方法に関する記事も投稿しておりますので、ぜひチェックしてくださいね!