diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2022-02-09 00:29:49 +0900 |
---|---|---|
committer | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2022-02-16 00:33:13 +0900 |
commit | 151b9b91cc951f9e05205b80f7b0803b8b51f9a0 (patch) | |
tree | 5395f8848a7f8263026d2724203f7594052d2c18 /files/ja/web | |
parent | 4db279add92295639e98082db999823b397dff6f (diff) | |
download | translated-content-151b9b91cc951f9e05205b80f7b0803b8b51f9a0.tar.gz translated-content-151b9b91cc951f9e05205b80f7b0803b8b51f9a0.tar.bz2 translated-content-151b9b91cc951f9e05205b80f7b0803b8b51f9a0.zip |
Web/HTML/Element/input/month を移行準備
Diffstat (limited to 'files/ja/web')
-rw-r--r-- | files/ja/web/html/element/input/month/index.html | 192 |
1 files changed, 96 insertions, 96 deletions
diff --git a/files/ja/web/html/element/input/month/index.html b/files/ja/web/html/element/input/month/index.html index fd93187747..7fc568b363 100644 --- a/files/ja/web/html/element/input/month/index.html +++ b/files/ja/web/html/element/input/month/index.html @@ -3,42 +3,42 @@ title: <input type="month"> slug: Web/HTML/Element/input/month tags: - Date picker - - Element + - 要素 - Form input - - Forms + - フォーム - HTML - - HTML forms + - HTML フォーム - HTML input - Input - - Input Element - - Input Type + - 入力要素 + - 入力型 - Number - - Reference + - リファレンス - month translation_of: Web/HTML/Element/input/month --- -<div>{{HTMLRef("Input_types")}}</div> +{{HTMLRef("Input_types")}} -<p><span class="seoSummary">{{HTMLElement("input")}} 要素の <strong><code>month</code></strong> 型は、ユーザーが年と月を入力できるようにする入力フィールドを作成し、年と月を簡単に入力できるようにします。値は "<code>YYYY-MM</code>" の形式の文字列で、 <code>YYYY</code> は4桁の年、 <code>MM</code> は月の番号です。</span></p> +<span class="seoSummary">{{HTMLElement("input")}} 要素の <strong>`month`</strong> 型は、ユーザーが年と月を入力できるようにする入力フィールドを作成し、年と月を簡単に入力できるようにします。値は "`YYYY-MM`" の形式の文字列で、 `YYYY` は4桁の年、 `MM` は月の番号です。</span> -<div>{{EmbedInteractiveExample("pages/tabbed/input-month.html", "tabbed-shorter")}}</div> +{{EmbedInteractiveExample("pages/tabbed/input-month.html", "tabbed-shorter")}} -<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 [https://github.com/mdn/interactive-examples](https://github.com/mdn/interactive-examples) をクローンしてプルリクエストを送信してください。</div> -<p>コントロールのユーザーインターフェイスは、一般にブラウザーによって異なります。現時点では対応が不安定であり、デスクトップ版の Chrome/Opera と Edge — および最新のバージョンのモバイルブラウザー — のみに利用可能な実装があります。 <code>month</code> 入力欄に対応していないブラウザーでは、コントロールは単純な <code><a href="/ja/docs/Web/HTML/Element/input/text"><input type="text"></a></code> に格下げされますが、入力されたテキストが期待されている形式であることを保証するための自動検証が行われることもあります。</p> +コントロールのユーザーインターフェイスは、一般にブラウザーによって異なります。現時点では対応が不安定であり、デスクトップ版の Chrome/Opera と Edge — および最新のバージョンのモバイルブラウザー — のみに利用可能な実装があります。 `month` 入力欄に対応していないブラウザーでは、コントロールは単純な `[<input type="text">](/ja/docs/Web/HTML/Element/input/text)` に格下げされますが、入力されたテキストが期待されている形式であることを保証するための自動検証が行われることもあります。 -<p><code>month</code> に対応していないブラウザーを使用している場合のために、このスクリーンショットで Chrome と Opera でどのように見えるかを示します。右端にある下向き矢印をクリックすると、年と月を選択できる日付選択が表示されます。</p> +`month` に対応していないブラウザーを使用している場合のために、このスクリーンショットで Chrome と Opera でどのように見えるかを示します。右端にある下向き矢印をクリックすると、年と月を選択できる日付選択が表示されます。 -<p><img alt="" src="https://mdn.mozillademos.org/files/15391/month-control-chrome.png" style="display: block; height: 216px; margin: 0px auto; width: 273px;"></p> +<img alt="" src="https://mdn.mozillademos.org/files/15391/month-control-chrome.png" style="display: block; height: 216px; margin: 0px auto; width: 273px;"> -<p>Microsoft Edge では、 <code>month</code> コントロールはこのように表示されます。</p> +Microsoft Edge では、 `month` コントロールはこのように表示されます。 -<p><img alt="" src="https://mdn.mozillademos.org/files/15393/month-control-edge.png" style="display: block; height: 389px; margin: 0px auto; width: 227px;"></p> +<img alt="" src="https://mdn.mozillademos.org/files/15393/month-control-edge.png" style="display: block; height: 389px; margin: 0px auto; width: 227px;"> <table class="properties"> <tbody> <tr> - <td><strong>{{anch("Value", "値")}}</strong></td> + <td><strong>{{anch("値")}}</strong></td> <td>年と月を表す {{domxref("DOMString")}}、または空欄</td> </tr> <tr> @@ -51,7 +51,7 @@ translation_of: Web/HTML/Element/input/month </tr> <tr> <td><strong>IDL 属性</strong></td> - <td><code>value</code></td> + <td>`value`</td> </tr> <tr> <td><strong>メソッド</strong></td> @@ -60,24 +60,24 @@ translation_of: Web/HTML/Element/input/month </tbody> </table> -<h2 id="Value" name="Value">値</h2> +## 値 -<p>{{domxref("DOMString")}} で、入力欄に入力された年と月の値を YYYY-MM (4桁以上の年に続いてハイフン ("<code>-</code>")、続いて2桁の月) の形式で表します。この入力型で使用される時刻の値の形式について詳しくは、 <a href="/ja/docs/Web/HTML/Date_and_time_formats">HTML で使われる日付や時刻の形式</a>の<a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">月の文字列をご覧ください。</a></p> +{{domxref("DOMString")}} で、入力欄に入力された年と月の値を YYYY-MM (4桁以上の年に続いてハイフン ("`-`")、続いて2桁の月) の形式で表します。この入力型で使用される時刻の値の形式について詳しくは、 [HTML で使われる日付や時刻の形式](/ja/docs/Web/HTML/Date_and_time_formats)の[月の文字列をご覧ください。](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings) -<p><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">入力コントロールの既定値は、次のように {{htmlattrxref("value", "input")}} 属性に年と月を入れることで設定することができます。</a></p> +[入力コントロールの既定値は、次のように {{htmlattrxref("value", "input")}} 属性に年と月を入れることで設定することができます。](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings) <div id="value-example-1"> <pre class="brush: html notranslate"><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings"><label for="bday-month">生まれた月は?</label> <input id="bday-month" type="month" name="bday-month" value="2017-06"></a></pre> -<p><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">{{EmbedLiveSample('value-example-1', 600, 60)}}</a></p> +[{{EmbedLiveSample('value-example-1', 600, 60)}}](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings) </div> -<p><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">一点気を付けなければならないことは、表示される日付の書式は実際の <code>value</code> とは異なるということです。多くの{{Glossary("user agent", "ユーザーエージェント")}}は、年と月をユーザーのオペレーティングシステムに設定されたロケールに適した形式で表示しますが、日付の <code>value</code> は常に <code>yyyy-MM</code> の書式です。</a></p> +[一点気を付けなければならないことは、表示される日付の書式は実際の `value` とは異なるということです。多くの{{Glossary("user agent", "ユーザーエージェント")}}は、年と月をユーザーのオペレーティングシステムに設定されたロケールに適した形式で表示しますが、日付の `value` は常に `yyyy-MM` の書式です。](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings) -<p><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">When the above value is submitted to the server, for example, it will look like <code>bday-month=1978-06</code>.</a></p> +[When the above value is submitted to the server, for example, it will look like `bday-month=1978-06`.](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings) -<p><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">次のように、 JavaScript で {{domxref("HTMLInputElement.value", "value")}} プロパティを使用して、日付の値を取得したり設定したりすることもできます。</a></p> +[次のように、 JavaScript で {{domxref("HTMLInputElement.value", "value")}} プロパティを使用して、日付の値を取得したり設定したりすることもできます。](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings) <div id="value-example-2"> <div class="hidden"> @@ -88,92 +88,92 @@ translation_of: Web/HTML/Element/input/month <pre class="brush: js notranslate"><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">var monthControl = document.querySelector('input[type="month"]'); monthControl.value = '1978-06';</a></pre> -<p><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">{{EmbedLiveSample("value-example-2", 600, 60)}}</a></p> +[{{EmbedLiveSample("value-example-2", 600, 60)}}](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings) </div> -<h2 id="Additional_attributes" name="Additional_attributes"><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">追加の属性</a></h2> +<h2 id="Additional_attributes" name="Additional_attributes">[追加の属性](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</h2> -<p><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">すべての {{HTMLElement("input")}} 型で共通する属性に加え、 <code>month</code> 型の入力欄は次の属性にも対応しています。</a></p> +[すべての {{HTMLElement("input")}} 型で共通する属性に加え、 `month` 型の入力欄は次の属性にも対応しています。](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings) <table class="standard-table"> <thead> <tr> - <th scope="col"><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">属性</a></th> - <th scope="col"><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">説明</a></th> + <th scope="col">[属性](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</th> + <th scope="col">[説明](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</th> </tr> </thead> <tbody> <tr> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings"><code>{{anch("list")}}</code></a></td> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">オプションで自動補完の定義済みの選択肢を含む <datalist> 要素の id</a></td> + <td>[`{{anch("list")}}`](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> + <td>[オプションで自動補完の定義済みの選択肢を含む <datalist> 要素の id](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> </tr> <tr> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings"><code>{{anch("max")}}</code></a></td> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">受け付ける最新の年月</a></td> + <td>[`{{anch("max")}}`](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> + <td>[受け付ける最新の年月](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> </tr> <tr> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings"><code>{{anch("min")}}</code></a></td> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">受け付ける最古の年月</a></td> + <td>[`{{anch("min")}}`](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> + <td>[受け付ける最古の年月](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> </tr> <tr> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings"><code>{{anch("readonly")}}</code></a></td> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">論理属性で、存在すれば、入力欄の値が編集できないことを示す</a></td> + <td>[`{{anch("readonly")}}`](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> + <td>[論理属性で、存在すれば、入力欄の値が編集できないことを示す](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> </tr> <tr> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings"><code>{{anch("step")}}</code></a></td> - <td><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">上下の矢印で値を調整する時や、検証に使用する刻み値</a></td> + <td>[`{{anch("step")}}`](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> + <td>[上下の矢印で値を調整する時や、検証に使用する刻み値](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</td> </tr> </tbody> </table> -<p id="htmlattrdeflist"><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">{{page("/ja/docs/Web/HTML/Element/input/text", "list", 0, 1, 2)}}</a></p> +<p id="htmlattrdeflist">[{{page("/ja/docs/Web/HTML/Element/input/text", "list", 0, 1, 2)}}](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</p> -<h3 id="htmlattrdefmax"><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">{{htmlattrdef("max")}}</a></h3> +<h3 id="htmlattrdefmax">[{{htmlattrdef("max")}}](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)</h3> -<p><a href="/ja/docs/Web/HTML/Date_and_time_formats#Month_strings">最新の年月で、上記の{{anch("Value", "値")}}で説明した文字列の書式です。要素に入力された {{htmlattrxref("value", "input")}} がこの日付よりも後の場合、要素は</a><a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">制約検証</a>に失敗します。 <code>max</code> 属性の値が "<code>yyyy-MM</code>" の書式に従う妥当な文字列でない場合、要素は最大値を持ちません。</p> +[最新の年月で、上記の{{anch("値")}}で説明した文字列の書式です。要素に入力された {{htmlattrxref("value", "input")}} がこの日付よりも後の場合、要素は](/ja/docs/Web/HTML/Date_and_time_formats#Month_strings)[制約検証](/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation)に失敗します。 `max` 属性の値が "`yyyy-MM`" の書式に従う妥当な文字列でない場合、要素は最大値を持ちません。 -<p>この値は <code>min</code> 属性で指定されたものより後か、同じ年月を指定する必要があります。</p> +この値は `min` 属性で指定されたものより後か、同じ年月を指定する必要があります。 <h3 id="htmlattrdefmin">{{htmlattrdef("min")}}</h3> -<p>受け付ける最古の年月で、前述と同じ <code>yyyy-MM</code> の書式です。要素の {{htmlattrxref("value", "input")}} がこれより前の場合、要素は<a href="/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation">制約検証</a>に失敗します。 <code>min</code> 属性の値が "<code>yyyy-MM-dd</code>" の書式に従う妥当な文字列でない場合、要素は最小値を持ちません。</p> +受け付ける最古の年月で、前述と同じ `yyyy-MM` の書式です。要素の {{htmlattrxref("value", "input")}} がこれより前の場合、要素は[制約検証](/ja/docs/Web/Guide/HTML/HTML5/Constraint_validation)に失敗します。 `min` 属性の値が "`yyyy-MM-dd`" の書式に従う妥当な文字列でない場合、要素は最小値を持ちません。 -<p>この値は <code>max</code> 属性で指定されたものより前か、同じ年月を指定する必要があります。</p> +この値は `max` 属性で指定されたものより前か、同じ年月を指定する必要があります。 <h3 id="htmlattrdefreadonly">{{htmlattrdef("readonly")}}</h3> -<p>論理属性で、存在すれば、ユーザーが編集することができないことを表します。しかし、 <code>value</code> は、 JavaScript コードから直接 {{domxref("HTMLInputElement.value")}} プロパティを設定することで変更することができます。</p> +論理属性で、存在すれば、ユーザーが編集することができないことを表します。しかし、 `value` は、 JavaScript コードから直接 {{domxref("HTMLInputElement.value")}} プロパティを設定することで変更することができます。 <div class="note"> -<p><strong>注:</strong> 読み取り専用フィールドは値を持てないため、 <code>required</code> は <code>readonly</code> 属性も指定されている入力欄には効果がありません。</p> +<strong>注:</strong> 読み取り専用フィールドは値を持てないため、 `required` は `readonly` 属性も指定されている入力欄には効果がありません。 </div> <h3 id="htmlattrdefstep">{{htmlattrdef("step")}}</h3> -<p>{{page("/ja/docs/Web/HTML/Element/input/number", "step-include")}}</p> +{{page("/ja/docs/Web/HTML/Element/input/number", "step-include")}} -<p><code>date</code> 入力欄では、 <code>step</code> の値は月数で指定され、倍率は1です (数値も月単位であるため)。 <code>step</code> の既定値は 1 です。</p> +`date` 入力欄では、 `step` の値は月数で指定され、倍率は1です (数値も月単位であるため)。 `step` の既定値は 1 です。 <h2 id="Using_month_inputs" name="Using_month_inputs">month 入力欄の使用</h2> -<p>日付に関する入力欄は (<code>month</code> を含め) 一見すると便利に見えます。日付の選択に簡単なユーザーインターフェイスを提供し、サーバーに送信するデータの書式をユーザーのロケールに関係なく正規化してくれます。しかし、現時点ではブラウザーの対応が限定されているため、 <code><input type="month"></code> には問題があります。</p> +日付に関する入力欄は (`month` を含め) 一見すると便利に見えます。日付の選択に簡単なユーザーインターフェイスを提供し、サーバーに送信するデータの書式をユーザーのロケールに関係なく正規化してくれます。しかし、現時点ではブラウザーの対応が限定されているため、 `<input type="month">` には問題があります。 -<p><code><input type="month"></code> の基本的な使い方と少し複雑な使い方を見てみてから、その後でブラウザーの互換性の問題を緩和するアドバイスを提供しましょう ({{anch("Handling browser support", "ブラウザーの互換性の扱い")}} を参照してください)。</p> +`<input type="month">` の基本的な使い方と少し複雑な使い方を見てみてから、その後でブラウザーの互換性の問題を緩和するアドバイスを提供しましょう ({{anch("Handling browser support", "ブラウザーの互換性の扱い")}} を参照してください)。 <h3 id="Basic_uses_of_month" name="Basic_uses_of_month">月入力の基本的な使用</h3> -<p>もっとも単純な <code><input type="month"></code> の使用方法は、次のように基本的な {{HTMLElement("input")}} と {{htmlelement("label")}} 要素の組み合わせです。</p> +もっとも単純な `<input type="month">` の使用方法は、次のように基本的な {{HTMLElement("input")}} と {{htmlelement("label")}} 要素の組み合わせです。 <pre class="brush: html notranslate"><form> <label for="bday-month">生まれた月を入力してください。</label> <input id="bday-month" type="month" name="bday-month"> </form></pre> -<p>{{EmbedLiveSample('Basic_uses_of_month', 600, 40)}}</p> +{{EmbedLiveSample('Basic_uses_of_month', 600, 40)}} <h3 id="Setting_maximum_and_minimum_dates" name="Setting_maximum_and_minimum_dates">日付の最大値と最小値の設定</h3> -<p>{{htmlattrxref("min", "input")}} および {{htmlattrxref("max", "input")}} 属性を使用して、ユーザーが選択できる日付の範囲を制限することができます。次の例では、日付の最小値を <code>1900-01</code> に、日付の最大値を <code>1999-12</code> に指定しています。</p> +{{htmlattrxref("min", "input")}} および {{htmlattrxref("max", "input")}} 属性を使用して、ユーザーが選択できる日付の範囲を制限することができます。次の例では、日付の最小値を `1900-01` に、日付の最大値を `1999-12` に指定しています。 <pre class="brush: html notranslate"><form> <label for="bday-month">生まれた月を入力してください。</label> @@ -181,9 +181,9 @@ monthControl.value = '1978-06';</a></pre> min="1900-01" max="1999-12"> </form></pre> -<p>{{EmbedLiveSample('Setting_maximum_and_minimum_dates', 600, 40)}}</p> +{{EmbedLiveSample('Setting_maximum_and_minimum_dates', 600, 40)}} -<p>次のような結果になります。</p> +次のような結果になります。 <ul> <li>1900年1月から1999年12月までの間の月のみが選択できます。この範囲から外れた月は、コントロール内でスクロールできません。</li> @@ -192,15 +192,15 @@ monthControl.value = '1978-06';</a></pre> <h3 id="Controlling_input_size" name="Controlling_input_size">入力欄の寸法の制御</h3> -<p><code><input type="month"></code> は {{htmlattrxref("size", "input")}} のような寸法に関する属性には対応していません。寸法を変更する必要がある場合は、 <a href="/ja/docs/Web/CSS">CSS</a> を使用する必要があります。</p> +`<input type="month">` は {{htmlattrxref("size", "input")}} のような寸法に関する属性には対応していません。寸法を変更する必要がある場合は、 [CSS](/ja/docs/Web/CSS) を使用する必要があります。 <h2 id="Validation" name="Validation">検証</h2> -<p>既定で、 <code><input type="month"></code> は入力された値の検証を行いません。ユーザーインターフェイスの実装は一般的に、日付でないものの入力をさせないからです。これは便利です。しかし、それでも <code>month</code> 入力欄を空のまま、または無効な日付 (例えば4月32日など) を入力してフォームを送信することが可能です。</p> +既定で、 `<input type="month">` は入力された値の検証を行いません。ユーザーインターフェイスの実装は一般的に、日付でないものの入力をさせないからです。これは便利です。しかし、それでも `month` 入力欄を空のまま、または無効な日付 (例えば4月32日など) を入力してフォームを送信することが可能です。 -<p>これを防ぐために、 {{htmlattrxref("min", "input")}} と {{htmlattrxref("max", "input")}} を用いて利用可能な日を制限することができ ({{anch("Setting maximum and minimum dates", "日付の最大値と最小値の設定")}} を参照)、加えて {{htmlattrxref("required", "input")}} 属性を用いて、日付を入力することを必須にすることができます。結果として、対応しているブラウザーは、範囲外の日付や空の日付フィールドを送信しようとするとエラーを表示します。</p> +これを防ぐために、 {{htmlattrxref("min", "input")}} と {{htmlattrxref("max", "input")}} を用いて利用可能な日を制限することができ ({{anch("Setting maximum and minimum dates", "日付の最大値と最小値の設定")}} を参照)、加えて {{htmlattrxref("required", "input")}} 属性を用いて、日付を入力することを必須にすることができます。結果として、対応しているブラウザーは、範囲外の日付や空の日付フィールドを送信しようとするとエラーを表示します。 -<p>例を見てみましょう。ここで日付の最小値と最大値を設定し、入力欄を必須にしました。</p> +例を見てみましょう。ここで日付の最小値と最大値を設定し、入力欄を必須にしました。 <pre class="brush: html notranslate"><form> <div> @@ -214,15 +214,15 @@ monthControl.value = '1978-06';</a></pre> </div> </form></pre> -<p>年と月を指定せずに (または設定した範囲を外れた日付を) 送信しようとすると、ブラウザーはエラーを表示します。例を実行してみましょう。</p> +年と月を指定せずに (または設定した範囲を外れた日付を) 送信しようとすると、ブラウザーはエラーを表示します。例を実行してみましょう。 -<p>{{EmbedLiveSample('Validation', 600, 120)}}</p> +{{EmbedLiveSample('Validation', 600, 120)}} -<p>対応しているブラウザーで入力しなかった場合のスクリーンショットです。</p> +対応しているブラウザーで入力しなかった場合のスクリーンショットです。 -<p><img alt="" src="https://mdn.mozillademos.org/files/15395/month-required.png" style="display: block; margin: 0 auto;"></p> +<img alt="" src="https://mdn.mozillademos.org/files/15395/month-required.png" style="display: block; margin: 0 auto;"> -<p>上記の例の CSS です。 CSS の {{cssxref(":valid")}} および {{cssxref(":invalid")}} プロパティを使用して、現在の値が有効かどうかに基づいてスタイルを設定しています。アイコンは入力欄そのものではなく、入力欄の隣の {{htmlelement("span")}} に置くようにしないと、 Chrome ではコントロールの内側にコンテンツを生成するので、正しく整形したり表示したりすることができません。</p> +上記の例の CSS です。 CSS の {{cssxref(":valid")}} および {{cssxref(":invalid")}} プロパティを使用して、現在の値が有効かどうかに基づいてスタイルを設定しています。アイコンは入力欄そのものではなく、入力欄の隣の {{htmlelement("span")}} に置くようにしないと、 Chrome ではコントロールの内側にコンテンツを生成するので、正しく整形したり表示したりすることができません。 <pre class="brush: css notranslate">div { margin-bottom: 10px; @@ -250,29 +250,29 @@ input:valid+span:after { }</pre> <div class="warning"> -<p><strong>重要</strong>: HTML のフォーム検証は、入力されたデータが正しい形式であることを保証するスクリプトの代用にはなりません。 HTML を調整して検証をくぐり抜けたり、完全に削除したりすることはとても簡単にできます。 HTML を完全にバイパスし、サーバーに直接データを送信することも可能です。サーバー側のコードが受信したデータの検証に失敗した場合、不適切な形式のデータ (または大きすぎるデータ、誤った種類のデータなど) が送信された場合に障害が発生するおそれがあります。</p> +<strong>重要</strong>: HTML のフォーム検証は、入力されたデータが正しい形式であることを保証するスクリプトの代用にはなりません。 HTML を調整して検証をくぐり抜けたり、完全に削除したりすることはとても簡単にできます。 HTML を完全にバイパスし、サーバーに直接データを送信することも可能です。サーバー側のコードが受信したデータの検証に失敗した場合、不適切な形式のデータ (または大きすぎるデータ、誤った種類のデータなど) が送信された場合に障害が発生するおそれがあります。 </div> <h2 id="Handling_browser_support" name="Handling_browser_support">ブラウザーの対応の扱い</h2> -<p>前述のように、現時点で日付入力を書く上で一番の問題は、多くの主要なブラウザーがまだすべてを実装している訳ではないということです。デスクトップでは Chrome/Opera と Edge のみが対応しており、モバイルでは多くの最新のブラウザーが対応しています。例えば、 <code>month</code> の選択画面は Android 版 Chrome ではこのように表示されます。</p> +前述のように、現時点で日付入力を書く上で一番の問題は、多くの主要なブラウザーがまだすべてを実装している訳ではないということです。デスクトップでは Chrome/Opera と Edge のみが対応しており、モバイルでは多くの最新のブラウザーが対応しています。例えば、 `month` の選択画面は Android 版 Chrome ではこのように表示されます。 -<p><img alt="" src="https://mdn.mozillademos.org/files/15397/month-android.png" style="display: block; margin: 0 auto;"></p> +<img alt="" src="https://mdn.mozillademos.org/files/15397/month-android.png" style="display: block; margin: 0 auto;"> -<p>対応していないブラウザーでは、文字列入力欄に安全に格下げされますが、これはユーザーインターフェイスの一貫性 (表示されるコントロールが異なること) とデータの扱いの両方で問題を生みます。</p> +対応していないブラウザーでは、文字列入力欄に安全に格下げされますが、これはユーザーインターフェイスの一貫性 (表示されるコントロールが異なること) とデータの扱いの両方で問題を生みます。 -<p>2番目の問題はより深刻です。すでに述べたように、 <code>month</code> 入力欄では、実際の値が常に <code>yyyy-mm</code> の書式で正規化されます。一方、既定の設定では、 <code>text</code> 入力欄ではどの書式で入力されるかの認識がなく、以下のように人間が日付を書く様々な方法で入力される可能性があります。</p> +2番目の問題はより深刻です。すでに述べたように、 `month` 入力欄では、実際の値が常に `yyyy-mm` の書式で正規化されます。一方、既定の設定では、 `text` 入力欄ではどの書式で入力されるかの認識がなく、以下のように人間が日付を書く様々な方法で入力される可能性があります。 <ul> - <li><code>yyyy/mm</code> (2018/07)</li> - <li><code>yyyymm</code> (201807)</li> - <li><code>mm-yyyy</code> (07-2018)</li> - <li><code>yyyy-mm</code> (2018-07)</li> - <li><code>Month yyyy</code> (July 2018)</li> + <li>`yyyy/mm` (2018/07)</li> + <li>`yyyymm` (201807)</li> + <li>`mm-yyyy` (07-2018)</li> + <li>`yyyy-mm` (2018-07)</li> + <li>`Month yyyy` (July 2018)</li> <li>... などなど。</li> </ul> -<p>これを回避する方法の一つは、 <code>month</code> 入力欄に {{htmlattrxref("pattern", "input")}} 属性を付けることです。 <code>month</code> 入力欄はこれを使用しないので、 <code>text</code> 入力欄などとして扱うようフォールバックされたときに、このパターンを使用します。例えば、次の例を <code>month</code> 入力欄に未対応のブラウザーで見てみてください。</p> +これを回避する方法の一つは、 `month` 入力欄に {{htmlattrxref("pattern", "input")}} 属性を付けることです。 `month` 入力欄はこれを使用しないので、 `text` 入力欄などとして扱うようフォールバックされたときに、このパターンを使用します。例えば、次の例を `month` 入力欄に未対応のブラウザーで見てみてください。 <pre class="brush: html notranslate"><form> <div> @@ -287,11 +287,11 @@ input:valid+span:after { </div> </form></pre> -<p>{{ EmbedLiveSample('Handling_browser_support', 600, 100) }}</p> +{{ EmbedLiveSample('Handling_browser_support', 600, 100) }} -<p><code>nnnn-nn</code> のパターン (<code>n</code> は数字の0から9) に一致しない文字列を入力して送信しようとすると、エラーメッセージが表示される (そして入力欄が無効として強調表示される) のが分かるでしょう。もちろん、これでユーザーが無効な日付を入力したり (<code>0000-42</code> など)、パターンに合わない誤った書式の日付が入力されたりすることを止めることはできません。</p> +`nnnn-nn` のパターン (`n` は数字の0から9) に一致しない文字列を入力して送信しようとすると、エラーメッセージが表示される (そして入力欄が無効として強調表示される) のが分かるでしょう。もちろん、これでユーザーが無効な日付を入力したり (`0000-42` など)、パターンに合わない誤った書式の日付が入力されたりすることを止めることはできません。 -<p>また、ユーザーが数ある日付形式の中で期待されるものがどれであるかを知らない可能性もあります。後はその分の作業が残っています。</p> +また、ユーザーが数ある日付形式の中で期待されるものがどれであるかを知らない可能性もあります。後はその分の作業が残っています。 <div class="hidden"> <pre class="brush: css notranslate">div { @@ -320,17 +320,17 @@ input:valid+span:after { }</pre> </div> -<p>(すべての主要なブラウザーが対応するまでの間) ブラウザーに依存しない方法によってフォームで日付を扱う最善の方法は、ユーザーが年と月を別々なコントロール ({{htmlelement("select")}} 要素が一般的です。以下の実装を見てください) に入力するようにするか、 <a href="https://jqueryui.com/datepicker/">jQuery date picker</a> のような JavaScript ライブラリを使用することです。</p> +(すべての主要なブラウザーが対応するまでの間) ブラウザーに依存しない方法によってフォームで日付を扱う最善の方法は、ユーザーが年と月を別々なコントロール ({{htmlelement("select")}} 要素が一般的です。以下の実装を見てください) に入力するようにするか、 [jQuery date picker](https://jqueryui.com/datepicker/) のような JavaScript ライブラリを使用することです。 <h2 id="Examples" name="Examples">例</h2> -<p>この例では、ユーザーが都市と月を選択できるよう設計されたユーザーインターフェイスの要素を2組作成します。一つ目はネイティブの <code>month</code> 入力欄であり、もう一つは年と月を個別に選択することができる一組の {{HTMLElement("select")}} 要素で、まだ <code><input type="month"></code> に対応していないブラウザーのためのものです。</p> +この例では、ユーザーが都市と月を選択できるよう設計されたユーザーインターフェイスの要素を2組作成します。一つ目はネイティブの `month` 入力欄であり、もう一つは年と月を個別に選択することができる一組の {{HTMLElement("select")}} 要素で、まだ `<input type="month">` に対応していないブラウザーのためのものです。 -<p>{{EmbedLiveSample('Examples', 600, 140)}}</p> +{{EmbedLiveSample('Examples', 600, 140)}} <h3 id="HTML">HTML</h3> -<p>年と月を入力するフォームはこのようになります。</p> +年と月を入力するフォームはこのようになります。 <pre class="brush: html notranslate"><form> <div class="nativeDatePicker"> @@ -367,9 +367,9 @@ input:valid+span:after { </div> </form></pre> -<p><code>nativeDatePicker</code> の ID がついた {{HTMLElement("div")}} は、年と月をリクエストするために <code>month</code> 入力欄を用いるのに対し、 <code>fallbackDatePicker</code> の ID がついた <code><div></code> は代わりに一組の <code><select></code> 要素を使用します。一つ目は年を、二つ目は月を入力します。</p> +`nativeDatePicker` の ID がついた {{HTMLElement("div")}} は、年と月をリクエストするために `month` 入力欄を用いるのに対し、 `fallbackDatePicker` の ID がついた `<div>` は代わりに一組の `<select>` 要素を使用します。一つ目は年を、二つ目は月を入力します。 -<p>月を選択する <code><select></code> は、変化しないので月をハードコーディングしています (ローカライズの問題が残っていますが)。年に利用できる値は、現在の年に応じて動的に生成されます (どのように動作するかについての詳細な説明は、以下のコードのコメントを参照してください)。</p> +月を選択する `<select>` は、変化しないので月をハードコーディングしています (ローカライズの問題が残っていますが)。年に利用できる値は、現在の年に応じて動的に生成されます (どのように動作するかについての詳細な説明は、以下のコードのコメントを参照してください)。 <div class="hidden"> <pre class="brush: css notranslate">div { @@ -400,9 +400,9 @@ input:valid+span:after { <h3 id="JavaScript">JavaScript</h3> -<p>どちらの方法を使用するかを選択し、非ネイティブの年の <code><select></code> に年の一覧を設定する JavaScript コードは以下の通りです。</p> +どちらの方法を使用するかを選択し、非ネイティブの年の `<select>` に年の一覧を設定する JavaScript コードは以下の通りです。 -<p>この例の面白いもう一つの部分は、機能の検出コードです。ブラウザーが <code><input type="month"></code> に対応しているかどうかを検出するために、新たな {{htmlelement("input")}} 要素を生成し、その <code>type</code> を <code>month</code> に設定して、すぐに type に何が設定されたかをチェックします。対応していないブラウザーでは、 <code>month</code> が フォールバックされて <code>text</code> が返されます。 <code><input type="month"></code> に対応していない場合は、ネイティブの日付選択を非表示にしてフォールバック用の選択ユーザーインターフェイスを表示します。</p> +この例の面白いもう一つの部分は、機能の検出コードです。ブラウザーが `<input type="month">` に対応しているかどうかを検出するために、新たな {{htmlelement("input")}} 要素を生成し、その `type` を `month` に設定して、すぐに type に何が設定されたかをチェックします。対応していないブラウザーでは、 `month` が フォールバックされて `text` が返されます。 `<input type="month">` に対応していない場合は、ネイティブの日付選択を非表示にしてフォールバック用の選択ユーザーインターフェイスを表示します。 <pre class="brush: js notranslate">// define variables var nativePicker = document.querySelector('.nativeDatePicker'); @@ -451,10 +451,10 @@ function populateYears() { }</pre> <div class="note"> -<p><strong>注</strong>: 53週ある年もあることを忘れないでください(<a href="https://en.wikipedia.org/wiki/ISO_week_date#Weeks_per_year">年あたりの週数</a>を参照)。商品のアプリを開発するときはこれを念頭に置いておく必要があります。</p> +<strong>注</strong>: 53週ある年もあることを忘れないでください([年あたりの週数](https://en.wikipedia.org/wiki/ISO_week_date#Weeks_per_year)を参照)。商品のアプリを開発するときはこれを念頭に置いておく必要があります。 </div> -<h2 id="Specifications" name="Specifications">仕様書</h2> +## 仕様書 <table class="standard-table"> <thead> @@ -473,16 +473,16 @@ function populateYears() { </tbody> </table> -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> +## ブラウザーの互換性 -<p>{{Compat("html.elements.input.input-month")}}</p> +{{Compat("html.elements.input.input-month")}} -<h2 id="See_also" name="See_also">関連情報</h2> +## 関連情報 <ul> <li>全般的な {{HTMLElement("input")}} およびその操作に使用する{{domxref("HTMLInputElement")}} インターフェイス</li> - <li><a href="/ja/docs/Web/HTML/Date_and_time_formats">HTML で使用される日付と時刻の書式</a></li> - <li><a href="/ja/docs/Web/Guide/HTML/Forms/The_native_form_widgets#Date_and_time_picker">日付と時刻の選択のチュートリアル</a></li> - <li><code><a href="/ja/docs/Web/HTML/Element/input/datetime-local"><input type="datetime-local"></a></code>, <code><a href="/ja/docs/Web/HTML/Element/input/date"><input type="date"></a></code>, <code><a href="/ja/docs/Web/HTML/Element/input/time"><input type="time"></a></code>, <code><a href="/ja/docs/Web/HTML/Element/input/week"><input type="week"></a></code></li> - <li><a href="/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls">CSS プロパティの互換性</a></li> + <li>[HTML で使用される日付と時刻の書式](/ja/docs/Web/HTML/Date_and_time_formats)</li> + <li>[日付と時刻の選択のチュートリアル](/ja/docs/Web/Guide/HTML/Forms/The_native_form_widgets#Date_and_time_picker)</li> + <li>`[<input type="datetime-local">](/ja/docs/Web/HTML/Element/input/datetime-local)`, `[<input type="date">](/ja/docs/Web/HTML/Element/input/date)`, `[<input type="time">](/ja/docs/Web/HTML/Element/input/time)`, `[<input type="week">](/ja/docs/Web/HTML/Element/input/week)`</li> + <li>[CSS プロパティの互換性](/ja/docs/Learn/Forms/Property_compatibility_table_for_form_controls)</li> </ul> |