チェックボックスで入力欄を無効化!フォーム体験をスマートにする小技
フォームに「未定」などの選択肢があると、
ユーザーが他の入力欄を触らなくても済むようにしたいですよね。
今回は、チェックボックスを使って、
関連する入力フィールドを自動で無効化(disabled)する方法をご紹介します。
例えば、日付や時間の入力が「未定」の場合、その情報をスキップさせるスマートなUXを実現できます。
こんなケースで使えます
- 「日程が未定なので入力できない」とき
- 「特定のオプションを選んだら他の項目を無効化したい」とき
- フォーム入力ミスを防ぎたいとき
HTMLの構成(例)
まずは、フォームのHTMLを作ります。以下は「イベント日程」の入力欄の一例です。
<div class="form-group">
<label>
<input type="checkbox" name="event-undecided"> 未定
</label>
<input type="date" name="event-date">
<input type="text" name="event-time" placeholder="例)19:45">
</div>
<div class="form-group">
<label>
<input type="checkbox" name="meeting-undecided"> 未定
</label>
<input type="date" name="meeting-date">
<input type="text" name="meeting-time" placeholder="例)14:00">
</div>
JavaScriptで入力欄を制御
上記のチェックボックスに連動して、右側の入力欄を無効化するスクリプトはこちらです。
<script>
document.addEventListener('DOMContentLoaded', function () {
function handleToggle(checkboxName, inputNames) {
const checkbox = document.querySelector(`input[name="${checkboxName}"]`);
const inputs = inputNames.map(name => document.querySelector(`input[name="${name}"]`));
function updateState() {
const disabled = checkbox.checked;
inputs.forEach(input => {
if (input) {
input.disabled = disabled;
if (disabled) input.value = '';
}
});
}
checkbox.addEventListener('change', updateState);
updateState(); // ページ読み込み時にも反映
}
handleToggle('event-undecided', ['event-date', 'event-time']);
handleToggle('meeting-undecided', ['meeting-date', 'meeting-time']);
});
</script>
実装のポイント
- チェックが入ったタイミングで
.disabled = true
を設定 - 無効化時には
.value = ''
で中身もリセット - 初期表示時も状態を確認(更新漏れを防止)
ユーザーにやさしいフォームを作るために
このような細かい工夫によって、ユーザーは「どこを入力して、どこを無視していいのか」が直感的にわかるようになります。
特にスマートフォンユーザーにとっては、「未定を選んでも入力欄がアクティブのまま」だと混乱しがち。
今回のようなスクリプトを仕込んでおくだけで、離脱やミスを減らす効果も期待できます。
まとめ
項目 | 内容 |
---|---|
機能 | チェックボックスで入力欄を無効化 |
方法 | JavaScriptで制御 |
メリット | UX改善・入力ミス防止・スマートな印象 |
もっと便利なフォームにしたい方へ
このテクニックは、他にも「ラジオボタンで表示切替」「選択肢によるバリデーション変更」など、
さまざまなフォーム改善に応用可能です。ぜひあなたのサイトでも取り入れてみてください!
【完全解説】パララックス背景 × 中身だけ切り替わるスクロール演出の作り方
7月 6, 2025Swiperの設定でスライド枚数が何枚でも動作するようにする方法
6月 12, 2025画像をクリックで拡大表示!ライトボックス機能の実装方法【jQuery+プラグイン対応】
6月 4, 2025