【kintoneカスタマイズ】レコードが登録されたら、チェックボックスに値を入れてチェックしたことにしたい。
今回は、レコードの登録を成功させたときにという条件なので、
イベントハンドラーを以下のように設定しました。
app.record.create.submit
また、フィールドの設定は以下のようにした。
$$
\begin{array}{|c|c|c|} \hline
フィールド名& フィールドコード & フィールドタイプ \\ \hline
checkboxA & checkboxA & チェックボックス \\ \hline
\end{array}
$$
checkboxAには「済」という値のみ設定した。
kintone.events.on('app.record.create.submit', function(event) {
var record = event.record;
// チェックボックスフィールドの値を取得
var checkboxValue = record['checkboxA'].value;
// 「済」という値がチェックボックスに入っているか確認
if (checkboxValue.indexOf('済') !== -1) {
// 「済」という値が入っていた場合はそのままレコードを保存
return event;
} else {
// チェックボックスに「済」という値を追加
checkboxValue.push('済');
record['checkboxA'].value = checkboxValue;
return event;
}
});
ちなみにこのままだと、新規レコードを作成したときしかイベントが発生しないので、レコードの編集の際にも同様の処理をしたいなと思ったときは、
”app.record.edit.submit”をイベントハンドラーに追加します。
以下が追加した記載方法
イベントハンドラーを配列で記載しています。
kintone.events.on(['app.record.create.submit',
'app.record.edit.submit'],
function(event) {
var record = event.record;
// チェックボックスフィールドの値を取得
var checkboxValue = record['checkboxA'].value;
// 「済」という値がチェックボックスに入っているか確認
if (checkboxValue.indexOf('済') === -1) {
//「済」という値が入力されていない場合
// チェックボックスに「済」という値を追加
checkboxValue.push('済');
record['checkboxA'].value = checkboxValue;
return event;
} else {
// 「済」という値が入っている場合に行う処理
return event;
}
});
このとき、レコードの登録が完了したときに使用する”app.record.edit.submit.success”を使いたくなる人もいるようなのですが、これは、レコードの編集が終わってしまっているので、上記のプログラムを走らせても編集することができないため、意図としない動きになります。
登録ボタンを押したときに処理を開始するようにすると、コードがシンプルです。
よろしければサポートをお願いいたします! いただいたサポートは活動費、活動応援費として使用させていただきます。より多くの人の健康のために!