HTML5 の日付入力があり、その値をデフォルトでモデルの日付プロパティの値に設定したいと考えています。とにかく私のロケールに基づいてChromeがそれを決定するように見えるので、私はフォーマットについてあまりうるさくありませんが、理想的にはフォーマットは一貫してdd/MM/yyyy
.
これが私の入力の設定方法です:
<input type="date"
ng-model="date"
value="{{ date | date: 'yyyy-MM-dd' }}" />
これは Chrome で問題なく動作し、デフォルトで次のように表示されます。
yyyy-MM-dd
( Chromeがまだ私のロケールに基づいてフォーマットするのであれば、値を で指定する必要がある理由はまだよくわかりませんが、それは別の質問です。)
私の問題は、Firefox が指定した方法で日付の値を表示しないことです。date
これは、属性にほとんどすべての文字列を指定できるため、入力をモデルにバインドすることに関係していると思いますがvalue
、デフォルトでは入力に長い日付文字列が表示されます。
入力タグから削除するng-model="date"
と、Firefox は指定した値を適切に表示します。入力がバインドされたモデルが実際にデフォルト値に影響を与えるとは思いませんでしたか?
日付入力が普遍的にサポートされていないことは理解していますが、単純なテキスト入力にフォールバックすることになっているため、2013-08-05
角度の日付フィルターで指定されているように、その値が単純にならない理由がわかりません。
では、日付入力で書式設定された値を Firefox に受け入れさせるにはどうすればよいですか?
注Date
: ユーザーが編集を行った後、もちろん検証を実行し、各日付入力値を適切なオブジェクトに変換します。これが質問に関連しているかどうかはわかりませんが、すべてのブラウザーで日付変換が同じように機能するには、入力形式が明らかに一貫している必要があるため、念のために記載します。もちろん、Chromeが入力形式を決定することに問題があります...