日時フィールド「選択を解除」について

お世話になっております。

下記コードを用いて、「日時Aフィールド編集時、日時Bフィールドに1時間後の値をセットする」処理を作成しました。

//"日時A"フィールド変更時
var eventInit = [‘app.record.edit.change.日時A’];

kintone.events.on(eventInit, function (event) {
var records = event.record;

//変更後の日時Aを取得し、1時間進めたものが日時B
var endDate = records[‘日時A’][‘value’].slice(0, 11);
var endTime = parseInt(records[‘日時A’][‘value’].slice(11, 13)) + 1;
var endMinute = records[‘日時A’][‘value’].slice(13, 20);

records[‘日時B’][‘value’] = endDate + endTime + endMinute;
return event;
})

想定通りの処理を実現したのですが、
「日時Aに今日以外の日付がセットされているとき、
日時Aの日付部分をクリア([選択を解除]押下もしくは手動で値変更)すると、日時Aの日付部分に今日の日付がセットされる」
という現象が発生してしまいました。

日付フィールドでは同様の現象が起きなかったため、日時フィールド特有の問題なのかと思うのですが、本現象の解決策をご教授頂けないでしょうか。

解決策ではなくてすみません。

 

私も試してみたのですが、日時フィールドの「選択を解除」の動きがどうも怪しい気がしますね。

日時が設定されている状態で「選択を解除」すると当日になるようです。カスタマイズを削除した状態でもこの動作になるようですし、空白になる場合もchangeイベントが発生しないように見えますので、上手い解決策は見つかりませんでした。

 

本質的な改善ではないですが、1時間後をセットするためのボタンを追加するという案はどうでしょうか?

https://developer.cybozu.io/hc/ja/articles/201952870-%E7%AC%AC3%E5%9B%9E-%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E8%A9%B3%E7%B4%B0%E3%81%AB%E3%82%82%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E8%A8%AD%E7%BD%AE%E3%81%97%E3%82%88%E3%81%86-

>Mitsuaki Ando 様

ご回答頂き有り難うございます。
日報登録アプリに実装するカスタマイズで、日時をクリアする頻度が少ないため、

既知の問題としてそのまま実装となりました。

 

ご調査いただきありがとうございました。