はじめまして。
ステータス変更ボタンを押したときに、未入力フォームの下にエラーメッセージを表示したいです。
以下のコードでは、画面上部にエラーメッセージは出ましたが、フォームの下には表示されませんでした。
ステータス変更ではなくチェックボックスと連動させたところ、問題なくフォームの下にエラーメッセージが表示されたので、構文は間違っていないと思います。
ステータス変更のイベントと合わせることができないのでしょうか?
良い方法があればお教えいただきたいです。よろしくお願い致します。
kintone.events.on(‘app.record.detail.process.proceed’, function(event) {
var record = event.record;
var nextStatus = event.nextStatus.value;
if(nextStatus === ‘登録’){
if(record[‘氏名’].value === “”) {
record[‘氏名’].error = “氏名を入力してください”;
errorMsg.push(‘氏名’);
}
~~~~~ 省略 ~~~~~~
//入力チェックエラーがあった場合、画面上部にエラーメッセージを表示
if(errorMsg.length !== 0){
var msg_str = errorMsg.join(‘、’);
event.error = msg_str;
}
return event;
});
中野さん
こんにちは。mofuku です。
プロセス管理のアクションイベントはレコード詳細イベントに属するので、
レコード編集イベントやレコード追加イベントで実行できる「フィールドにエラーを表示する」という操作に
対応していないと思いました。
おそらく、どのフィールドで入力エラーになっているかを
分かりやすく表示したいのではないかなと考えます(やりたいこととずれていたらすみません)。
方法としては、プロセス管理のアクションイベントが実行された際に、
レコードの各フィールド(記載してあるソースコードで言うと「氏名」フィールド)の値をチェックし、
画面上部にエラーメッセージを表示することができる「レコードにエラーを表示する」を実行すればいいと思います。
その際に、画面上部に表示するエラーメッセージに「どのフィールドで入力エラーになっているか」を
教えてくれる文章にカスタマイズするといいのではないでしょうか。
kintone.events.on('app.record.detail.process.proceed', function(event) {
var record = event.record;
var name = record[氏名].value;
if(nextStatus === '登録') {
if(!name) {
// 「氏名」フィールドに値がない場合、エラーメッセージを設定
event.error = '「氏名」を入力してください';
}
}
return event;
});
mofukuさん
こんにちは。
mofukuさんご指摘の通り、どのフィールドでエラーなのか分かりやすく表示したかったのです。
入力フォームが多く、配置場所もばらけているので。
アドバイス通り画面上部のエラーメッセージを丁寧にして対応したいと思います。
ご丁寧なお返事で分かりやすく大変助かりました。有難うございました!