2016-12-29 19 views
1

datetime-local入力タイプをChromeで使用すると、値がJavascriptで設定され、値に秒が含まれていると動作しないようです。なぜこうなった?それは一般的なことです。入力[type = 'datetime-local]]はChromeで秒をサポートしていません

  1. type='datetime-local'input要素を作成します。簡単に言えば、ここでの問題を再作成する方法です。
  2. ゼロではない(たとえば、'1980-01-01T01:01:01.001')の値を持つJavaScript(.valueを使用)を使用して、任意の日付と時刻に値を設定します。
  3. フォームを送信してください。検証エラーを返します。

しかし、あなたが0に秒を設定している場合(例えば。1980-01-01T01:01:00.001)、または値がHTML属性を経由して設定され、その後、検証エラーがスローされないと、フォームが正常に送信されます。

このCodePenのサンプルを参照してください:http://codepen.io/AskYous/pen/KNONVG

+2

おそらく、[* Google *](https://support.google.com/chrome/answer/95315?hl=ja)にバグとして報告する必要があります。 – RobG

答えて

0

それがChromeのバグだと思われます。私は解決策を見つけた。

datetimeInput.setAttribute('value', '1980-01-01T01:01:01.001');

0

これは、HTMLの標準で定義されて期待される動作です:.setAttribute()機能を使用してください。

stepのデフォルト値はtype=datetime-localで、1分です。デフォルトのステップベースは、Unixエポック1970-01-01T00:00:00です。したがって、1980-01-01T01:01:01.001はステップ不一致の​​検証エラーを引き起こします。

min属性またはvalue属性が指定されている場合は、ステップベースになります。

関連する問題