レコード保存時に特定条件の場合だけconfirmによる確認を行いたい

レコード保存のイベントにて
チェックボックス=確定済 の場合だけconfirmによる確認ダイアログを表示させたいのですが、
チェックボックス=確定済の状態でレコード保存しても確認ダイアログが表示されず
レコード保存されてしまいます。
以下のソースで確定フラグ=確定済 で保存ボタン押下しても、confirmが表示されずにそのままレコード保存されてしまいます。
原因判りますでしょうか。

let Myevents = [‘app.record.create.submit’, ‘app.record.edit.submit’];
kintone.events.on(Myevents, async function(event) {
if (event.record.確定フラグ.value === ‘確定済’) {
var res = confirm(“本当にこの内容を反映させますか”);
if (res === false) {
event.error = “キャンセルしました”;
window.location.href = window.location.origin + window.location.pathname + “#record=” + event.record.$id.value; // 画面遷移
}
return event;
}
});

確かに大きな間違いは見当たらない気がしますが、
if (event.record.確定フラグ.value === '確定済') {

このifの中に本当に到達しているかはまず切り分けとしてみたほうがいいとおもいます

こちらを参考にブレークポイントを設定し、if文の中に到達してるかみてみてください。
よくある失敗としてはフィールドコードやその値が間違っている可能性はあります。

1 Like

コメントありがとうございました。
確定フラグがチェックボックスなのですが、
チェックボックスのvalueを判断する場合は
event.record.確定フラグ.value[0]
で判断する必要があるようです。上記で実装したところ解決しました。

フィールドタイプがチェックボックスだったんですね!
インデックス0をみる、だとチェックボックスの項目増えた時に条件がうまく機能しないこともあるとおもうので、array.someとかでみたほうがよさそうですね

配列の中にひとつでも合致するものがあればtrueを返してくれます。

今後増えることを想定していないなら、大丈夫かもですが、情報として。

3 Likes

ありがとうございます。
some()での実装は知りませんでした。勉強になりました。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。