HTML5を使用しています<input type="date" />
、Chromeで正常に動作し、日付を選択するためのカレンダーポップアップが表示されます。
しかし、firefoxではテキストボックスのように機能し、カレンダーはポップアップしません。
いくつかの調査を行った後、webshims、modenizrなどを使用したソリューションはほとんどありませんが、jQueryは使用したくありません。
これに代わるものはありますか? Firefoxで動作させるにはどうすればよいですか?
[〜#〜] edit [〜#〜]:Firefox 57から、<input type="date"/>
は 部分的にサポート です。
Firefox HTML5の<input type="date"/>
まだ。
次の2つのオプションがあります。
これは Feature Detection と呼ばれ、 Modernizr はこのための最も人気のあるライブラリです。
常にjavascriptのdatepickerを使用する方が簡単で高速ですが、javascriptを無効にした場合(気になる人)は動作しません。
代わりにハイブリッドアプローチを使用すると、標準化された方法で、JavaScriptをまったく必要とせずに、すべてのブラウザーがHTML5のdatepickerをサポートする日まで、すべてのケースをカバーできます。これは将来性があり、 これはモバイルブラウジングで特に重要です です。JavaScriptの日付ピッカーはほとんど使用できません。
これは、すべての<input type="date"/>
すべてのページの要素を自動的に:
<script>
$(function(){
if (!Modernizr.inputtypes.date) {
// If not native HTML5 support, fallback to jQuery datePicker
$('input[type=date]').datepicker({
// Consistent format with the HTML5 picker
dateFormat : 'yy-mm-dd'
},
// Localization
$.datepicker.regional['it']
);
}
});
</script>
私はjQueryを使用しているためjQueryを使用しますが、jQuery部分をVanilla javascriptで、datepicker部分を任意のjavascript datepickerで自由に置き換えることができます。
現在は機能しています。 Firefox 53以降では、about:config
を有効にすることでdom.forms.datetype
オプション。 http://caniuse.com/#feat=input-datetime および https://developer.mozilla.org/en-US/Firefox/Experimental_features を参照してください
さまざまなアイテムに6つのHTML選択ボックスを使用し、適切な値のOPTIONステートメントを使用します。
年2000-2050(または選択した任意の範囲)月1-12(月名を表示することができます)日1-31時間0-23(または深夜12時から午後11時まで、これは表示を変更します)分0- 59秒0-59(または単に0と仮定)
Javascriptは必要ありませんが、無効な選択(2月30日など)を避けるために一部を使用しています。これは、月または年が変わるとトリガーされます。
`input type="date"` is not supported on mozilla
サポートされているイベントのリストについては、 link を確認してください