ウェブフォームで特定の日付を選択不可にする必要がある場合、JavaScriptを使用してプルダウン(ドロップダウンリスト)を動的に制御することができます。本記事では、その方法について解説します。
1. フォームのHTMLを設定する
まず、HTMLでフォームを設定します。プルダウン(ドロップダウンリスト)内に特定の日付を選択不可にしたい場合、該当する日付のオプションにdisabled属性を追加します。
<form>
<select name="dates" id="dates">
<option value="2024-03-30">2024-03-30</option>
<option value="2024-03-31">2024-03-31</option>
<option value="2024-04-01">2024-04-01</option>
<!-- 他の日付も同様に追加 -->
</select>
</form>
2. JavaScriptで日付を制御する
JavaScriptを使用して、特定の日付を選択不可にします。現在の日付を取得し、それよりも過去の日付を持つオプションを選択不可に設定します。
<script>
// 現在の日付を取得
var today = new Date();
var year = today.getFullYear();
var month = (today.getMonth() + 1).toString().padStart(2, '0'); // 月を2桁の文字列に変換
var day = today.getDate().toString().padStart(2, '0'); // 日を2桁の文字列に変換
var currentDate = year + '-' + month + '-' + day;
// ドロップダウンリストの各オプションをチェックし、特定の日付を選択不可にする
var dropdown = document.getElementById('dates');
var options = dropdown.options;
for (var i = 0; i < options.length; i++) {
if (options[i].value <= currentDate) {
options[i].disabled = true;
}
}
</script>
これで、特定の日付を選択不可にするJavaScriptコードが設定されました。過去の日付が選択不可になります。
まとめ
ウェブフォームで特定の日付を選択不可にする方法について解説しました。JavaScriptを使用して、プルダウン内の日付を動的に制御することで、ユーザーが選択できないようにします。必要に応じて、日付の取得方法や比較方法をカスタマイズしてください。