表題の実装を実現したく、下記や
https://developer.cybozu.io/hc/ja/articles/201718170–%E5%B0%8F%E6%8A%80-undefined-%E3%81%A8-%E7%A9%BA%E6%96%87%E5%AD%97%E3%81%AE%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%81%AA-if-%E6%96%87%E5%88%A4%E5%AE%9A
下記などを
https://developer.cybozu.io/hc/ja/community/posts/360018014523-%E6%97%A5%E4%BB%98%E3%82%92%E7%B7%A8%E9%9B%86%E6%99%82%E8%87%AA%E5%8B%95%E5%85%A5%E5%8A%9B
参考にして実装してみましたがうまく動作しません
(function () {
"use strict";
kintone.events.on([
'app.record.create.submit.success', 'app.record.edit.submit.success', 'app.record.create.show', 'app.record.edit.show'
], function(event) {
if (!record["record"]["請求日_01"]["value"]) {
var record = event.record;
record["record"]["請求日_01"]["value"] = ["請求日_02"];
}
return event;
});
})();
エラーチェックや色々試したところ、if文行のrecord直後あたりが怪しいことまではわかっているのですが、これ以上進めようがなく行き詰まっています
アドバイスや正しい記述の方法を教えていただけますと幸いです
何卒よろしくお願いいたします
追記:また2つの参考記事で[“record”]のありなしがあったため、それぞれテストしてみましたが、、、同様の箇所でエラーが発生しています※それぞれの違いについても理解できておらず、、、もし参考になるurlや知識なども教えていただけると非常に助かります
polygonStar さん
フォームの入力データは event.record から取得できるので、下記サンプルのように取得、値のコピー(代入)をします。
var record = event.record;
record["請求日_01"]["value"] = record["請求日_02"]["value"];
※質問文内のコードだと、if 文の行と 請求日_02 を代入する行に不備があります。
デベロッパーツールを使って、実際にデータを確認すると構造的に理解できると思います。
参考:ChromeのデベロッパーツールでJavaScriptをデバッグする方法(2022年版)
以上になります。参考になれば幸いです。
川村様
ご回答ありがとうございます
いただいた
>※質問文内のコードだと、if 文の行と 請求日_02 を代入する行に不備があります。
を元に下記のように修正しサイド試し、デベロッパーツールで見てみましたが、、、
変わらずif文の’!record’直後でエラーが出るようです
ご指摘いただいた「if文内の不備」について、理解が足りてない結果だとは思います
また実際に保存も試してみたところ「レコードを再読み込みしてください。編集中に、ほかのユーザーがレコードを更新しました。」と表記が出てしまいます
重ねて質問で恐縮ですが、なにかご指摘の箇所があればご教授いただけますと幸いです
(function () {
"use strict";
kintone.events.on([
'app.record.create.submit.success', 'app.record.edit.submit.success', 'app.record.create.show', 'app.record.edit.show'
], function(event) {
if (!record["請求日_01"]["value"]) {
var record = event.record;
record["請求日_01"]["value"] = record["請求日_02"]["value"];
}
return event;
});
})();
何卒よろしくお願いいたします
polygonStar さん
if 文の時点では record という変数が存在しないので、if 文より前に record の変数定義が必要です。
var record = event.record;
if (!record["請求日_01"]["value"]) {
また、「レコードを再読み込みしてください〜」の件についてですが、イベントの設定が .submit.success (レコード保存成功後)になっていることが原因で、.submit (レコード保存前)に変更することで回避できます。
正しくは下記の通りです。
kintone.events.on([
'app.record.create.submit',
'app.record.edit.submit',
'app.record.index.edit.submit' // レコード一覧での編集も追加
], function (event) {
詳細は下記参考にしてみてください。
以上になります。何か不明な点がありましたら、気兼ねなくご質問ください。
川村様
ご返信ありがとうございます
申し訳ありません
いただいたレスを見逃しておりました
早速いただいたアドバイスでコードを書き直したところ無事実装できました
まだまだ勉強中ですが1つ1つ覚えていきたいと思います
本当にありがとうございました
system
(system)
クローズされました:
6
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。