日時のクリア

いつもお世話になっております。
データ複写時に日時フィールドをクリアしたいのですがうまくいきません。

record[‘日時’].value = “”;
にすると本日の0:00が入ってしまいます。
どうしたらよいでしょうか?
ご教授ください。

こんにちは。
日時フィールドは “” を設定することで空の値になるはずなので、
0:00 になる場合には、フィールドに初期値が設定されており、
イベント処理が発火していないのかなーと思います。

一度処理が発火しているか確認してみたほうがいいかもしれないです。

@ko_ji
発火がうまくいっていないんですね…ちょっと処理見直してみます。
ありがとうございました!

すみません。
レコード再利用時に 0:00 の値に変更される場合、
イベント処理は発火している可能性が高かったです。。。

他のカスタマイズと競合して正常に値が設定できていないなどが考えられるので、
他のカスタマイズを一旦無効化してみるなど、切り分けしたほうがいいかもです。

@ko_ji
他を一旦無効化しながら確認をしたところ、
他の処理の影響でした:sweat_drops:
①複写時は、日時をクリアしたい
②日時が入っていればドロップダウンを編集不可にしたい
という処理にしています。
なので、
日時チェンジで、

if(record[‘日時’].value){
record[‘ドロップダウン’].disabled = true;
}else{
record[‘ドロップダウン’].disabled = false;
}

にしており、この処理が悪さをしているようでした。

一旦日時チェンジイベントをコメントにすることでに日時のクリアはできましたが、上記を共存させることはできますでしょうか?

①は “create.show”、②は “change.日時” のイベントを利用しているということですかね?

私の手元の環境で以下のコードを作成して試してみると、
どちらの処理も共存して動作しましたよ。

(() => {
  "use strict";

  kintone.events.on("app.record.create.show", (event) => {
    const record = event.record;
    record["日時"].value = "";
    return event;
  });

  kintone.events.on("app.record.create.change.日時", (event) => {
    const record = event.record;
    if (record["日時"].value) {
      record["ドロップダウン"].disabled = true;
    } else {
      record["ドロップダウン"].disabled = false;
    }
    return event;
  });
})();

なので、以下の処理ではなく “change.日時” イベント内の別の処理で、
日時フィールドに値を設定しているかと思うのですが、心当たりないでしょうか?