サブテーブルの行削除時のイベント取得について

2019年11月18日にRYさんからも同様の質問が投函されているのですが、

回答がないようでしたので改めて質問させていただきました。

以下、RYさんの投函からの引用です。

サブテーブルの各行の「-」ボタン押下時に
「この行を削除しますか?」等のconfirm(OK/キャンセル)を表示して、
キャンセルを押下した場合には行の削除をキャンセルする
という処理を実装したいのですが、JavaScriptのカスタマイズで可能でしょうか?

https://developer.cybozu.io/hc/ja/community/posts/360055093211-%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E8%A1%8C%E5%89%8A%E9%99%A4%E6%99%82%E3%81%AB%E7%A2%BA%E8%AA%8D%E7%94%BB%E9%9D%A2%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%9F%E3%81%84

よろしくお願いします。

よっちんさん、こんにちは。プロジェクト・アスノートの松田です。

フィールドの値変更時イベントは、行の場合は削除ボタンを操作した後に

イベントが発火するため、この画面操作をキャンセルすることはできないと思います。

やるとしたら、操作前のテーブルのデータを取得しておいて、行削除後のイベントで

ダイアログ判定後、キャンセルの場合は変更前のデータを書き戻してあげる、という

考え方でしょうか。

Shotaro Matsudaさま

どうもありがとうございます。

ちょっと面倒ですが、いったん退避しておいて、キャンセル後に復元するというやり方になるのですね。

ちなみに、削除ボタンを操作した後のイベントは何になりますんでしょうか?

フィールド変更時のイベントは拾えるのですが、行削除について教えていただけないでしょうか。

もしかして、フィールド変更時のイベントで、行数が減ったかどうか確認してダイアログを表示するとか、

そのような方法になるのでしょうか。

すみません、よろしくお願いします。

テーブルのフィールドのchangeイベントで行操作を取れます。

ドキュメントをきちんと確認しましょう。書いてありますよ。

すみません、ありました。

changes.row オブジェクト
・テーブルに行を追加した場合:changes.row は 追加した行オブジェクトを参照します。
・テーブルの行を削除した場合:changes.row は null になります。
・テーブル外のフィールドを変更した場合:changes.row は null になります。

これで工夫してやってみます。

ありがとうございました。

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