選択できる日時を制限したい
以下のフォームは、「今日から3ヶ月間で15分刻みの時間を指定したい」というニーズに応えたフォームです。
<form action="#" method="get">
<label for="date-input">日付:</label>
<input type="date" id="date-input" required>
<label for="time-input">時刻:</label>
<select id="time-input" required>
<option value="00:00">00:00</option>
<option value="00:15">00:15</option>
<option value="00:30">00:30</option>
<option value="00:45">00:45</option>
<!-- 以下、必要な時刻オプションを追加 -->
</select>
<script>
var dateInput = document.getElementById("date-input");
var timeInput = document.getElementById("time-input");
var currentDate = new Date().toISOString().slice(0, 10);
dateInput.setAttribute("min", currentDate);
</script>
</form>
日付と時刻の選択を可能にするHTMLフォームです。以下にそれぞれの要素とスクリプトの機能を解説します。
- 日付入力フィールド:
<input type="date" id="date-input" required>
type="date"
: ユーザーがカレンダーから日付を選択できるようにするための入力フィールドタイプです。id="date-input"
: 日付入力フィールドのID属性です。スクリプトからこの要素を取得するために使用されます。required
: 入力が必須であることを示す属性です。
- 時刻選択ドロップダウン:
<select id="time-input" required>...</select>
id="time-input"
: 時刻選択ドロップダウンのID属性です。スクリプトからこの要素を取得するために使用されます。required
: 選択が必須であることを示す属性です。
- 時刻オプション:
<option value="00:00">00:00</option>...
<option>
: 時刻選択ドロップダウン内の個々の選択肢を表す要素です。value="00:00"
: オプションの値を指定します。この値はフォームが送信された際にサーバーに送信される値です。00:00
: ドロップダウンで表示されるユーザーに対する可読性のある表示値です。
- スクリプト部分:
<script>...</script>
- スクリプトはJavaScriptのコードです。この場合、スクリプトは以下の処理を行います:
var dateInput = document.getElementById("date-input");
:date-input
IDを持つ要素を取得し、dateInput
変数に割り当てます。var timeInput = document.getElementById("time-input");
:time-input
IDを持つ要素を取得し、timeInput
変数に割り当てます。var currentDate = new Date().toISOString().slice(0, 10);
: 現在の日付を取得し、ISO 8601形式であるため、最初の10文字(年月日)を取り出してcurrentDate
変数に割り当てます。dateInput.setAttribute("min", currentDate);
:dateInput
要素のmin
属性に、currentDate
の値を設定します。これにより、選択できる最小の日付が現在の日付に制限されます。
- スクリプトはJavaScriptのコードです。この場合、スクリプトは以下の処理を行います: