日付フィールド+時刻フィールドを日時フィールドに自動で転記したいです。

スマホ版の時刻フィールドは、 PC 版と違って を別々に選ぶ UI になっています。

で、私も前に引っかかったことがあるのですが、なぜか 時と分どちらかが空欄の場合は undefined になり、なぜか そのまま return event すると undefined が時刻フィールドに再セットされます

つまり、時刻フィールドの変更イベントの最後で return event を必ず行うと、時か分のどちらかを入力したタイミングで常に undefined が設定される = 入力してもすぐクリアされる、という挙動になります。

調べてみたら、過去にも同じ現象で困っていた方がいらっしゃったみたいです。


対処法としては、裏ワザというかあまり推奨される方法ではないのですが、

  • 時刻フィールドの変更時イベントでは、時と分の両方が埋まった (= undefined じゃなかった) 場合のみ return event をする

という方法しかないのではないかと思います。過去の記事でもその方法で対応されているっぽいです。

ただ、日付フィールドはそのような問題が起きないので、ちゃんと最後に return event を行ったほうがいいです。なので日付フィールドと時刻フィールドでイベントハンドラを分けておくのが良いと思います。