※ ChatGPTを利用し、要約された質問です(原文:複数のチェックボックスの一括チェック/解除などのコントロール)
複数のチェックボックスの一括チェック/解除などのコントロール
このQ&Aのポイント
PHPに渡すために、1月から12月の値を検索条件として選択するチェックボックスのコントロールを実装する方法を教えてください。
特定のチェックボックスを選択した場合に、関連する他のチェックボックスも自動的に選択または解除する仕組みを作成する方法を教えてください。
通年、上半期、下半期のいずれかが選択されている間は他のチェックボックスを無効化し、選択が解除された場合には全てのチェックボックスを有効にする方法を教えてください。
複数のチェックボックスの一括チェック/解除などのコントロール
チェックボックスである、1月~12月の値を検索条件としてPHPに渡します。
その際、次のように動作するjavascriptをご教示下さい。よろしくお願い致します。
(1) 通年をチェックしたら、1月~12月もチェック(解除されたら全て解除)
(2) 上半期をチェックしたら、1月~6月もチェック(〃)
(3) 下半期をチェックしたら、6月~12月もチェック(〃)
(4) 通年、上半、下半は、いずれかがチェックされている間、他はdisabledに。
チェックが外れたら、全てアクティブかつ全チェックが解除される状態に。
以上が妥当と思いますが、(4)にの仕様についてはより洗練いただければ誠に幸いです。
<html>
<head>
<script language="javascript">
</script>
</head>
<body>
<form method="post" action="search.php" id="form1" name="form1">
<input type="checkbox" name="month[]" value="200501">2005年1月<br>
<input type="checkbox" name="month[]" value="200502">2005年2月<br>
<input type="checkbox" name="month[]" value="200503">2005年3月<br>
:(gooの文字数制限により略)
<input type="checkbox" name="month[]" value="200510">2005年10月<br>
<input type="checkbox" name="month[]" value="200511">2005年11月<br>
<input type="checkbox" name="month[]" value="200512">2005年12月<br>
<input type="checkbox" name="all" value="">通年<br>
<input type="checkbox" name="1sthalf" value="">上半期のみ<br>
<input type="checkbox" name="2ndhalf" value="">下半期のみ<br>
<input type="submit" name="exec" value="検索">
</form>
</body>
</html>
お礼
leaz024さん、すばらしいスクリプトありがとうございました!! 動作確認も完璧でした。ラジオボタンでコントロールという発想がなかったようです。 ところで、Clearボタンですが、ボタンでなく、ラジオボタングループの仲間にできますでしょうか? 検索フォームのSubmitボタンの隣にもクリア(リセット)ボタンを配置する関係で、たとえクリア対象が違っていても、ボタンでなくラジオボタンの仲間のほうがなじみそうです。 あつかましい追加要望で恐縮ですが、よろしければご教示いただけますと幸いです、よろしくお願いします。
補足
すみません、自己解決できました。 おかげさまで大変有用な仕組みが できました。ありがとうございました。