スマホ版の時刻フィールドは、 PC 版と違って 時 と 分 を別々に選ぶ UI になっています。
で、私も前に引っかかったことがあるのですが、なぜか 時と分どちらかが空欄の場合は undefined になり、なぜか そのまま return event すると undefined が時刻フィールドに再セットされます 。
つまり、時刻フィールドの変更イベントの最後で return event を必ず行うと、時か分のどちらかを入力したタイミングで常に undefined が設定される = 入力してもすぐクリアされる、という挙動になります。
調べてみたら、過去にも同じ現象で困っていた方がいらっしゃったみたいです。
対処法としては、裏ワザというかあまり推奨される方法ではないのですが、
- 時刻フィールドの変更時イベントでは、時と分の両方が埋まった (=
undefinedじゃなかった) 場合のみreturn eventをする
という方法しかないのではないかと思います。過去の記事でもその方法で対応されているっぽいです。
ただ、日付フィールドはそのような問題が起きないので、ちゃんと最後に return event を行ったほうがいいです。なので日付フィールドと時刻フィールドでイベントハンドラを分けておくのが良いと思います。