0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

safariでdatetime_localを使ったときに「有効な値を入力してください」と言われる

Last updated at Posted at 2023-03-11

何が起きたか

safariでdatetime_localのフォームを使い、値を必須とした状態(requireオプションをつける)で、デフォルト値を設定しているにもかかわらず、submitしようとした時に「有効な値を入れてください」と言われる。

原因

デフォルト値が秒まで入っていると値として認識してくれないことが原因

OK例
"2023-03-09T20:41:00+09:00"

NG例
"2023-03-09T20:41:31+09:00"

解決策

デフォルト値を入れる時に、フォーマット変更して秒は端折るように強制すると問題は起きなくなる。
ただ強引なので他の方法検討した方がいいかもしれない。

気をつけなければと感じたこと

レコードの値をデフォルト値とする場合、datetime_localとかのフォームで飛ばした値は秒以降が端折られるのでこの問題が起きない。
プログラム内で取得した秒を含む日時をそのままレコードに保存した場合は秒まで入るので問題が起きる。

そのほか

chromeでは起きない
firefoxはそもそもdatetime_localに対応していないらしい

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?