
javascriptでinput要素にcheckがあるか無いかで別要素を表示、非表示の切り替えを行いたいです。
html
1<div class="radio-box-wrap"> 2 <div class="radio-box"> 3 <input type="radio" name="boundSelect" value="out" checked="checked" id="outbound"> 4 <label for="outbound" class="radio-box__label">下り(京都~大阪)</label> 5 </div> 6 <div class="radio-box"> 7 <input type="radio" name="boundSelect" value="in" id="inbound"> 8 <label for="inbound" class="radio-box__label">上り(大阪~京都)</label> 9 </div> 10</div> 11 12<!--div class="radio-box"のinput にcheckがあるか無いかで表示を切り変えたい要素。--> 13 <div id="box_out" class="box_out_a" style="display:none"> 14 <select > 15 <option value="out_1">2023年1月13日</option> 16 <option value="out_2">2023年1月24日</option> 17 <option value="out_3">2023年2月3日</option> 18 </select> 19 </div> 20 <div id="box_in" class="box_in_a" style="display:none"> 21 <select> 22 <option value="in_1">2023年1月15日</option> 23 <option value="in_2">2023年1月26日</option> 24 <option value="in_3">2023年325日</option> 25 </select> 26 </div>
javascript
1if(getElementById('#outbound').checked == true){ 2 let elem = document.getElementById("#box_out"); 3 elem.style.display = "block"; 4}else { 5 let elem = document.getElementById("#box_in"); 6 elem.style.display = "block"; 7}
しかし、上記コードでは#outboundにチェックがある無しに関わらず、<div id="box_out">も<div id="box_in">も表示されてしまいます。
エラーも出ていません。。。
どうすれば、<input>タグのチェックの有無で <div id="box_out"> と<div id="box_in">の表示が切り替えれるでしょうか?

一方を elem.style.display = "block" としたら他方は elem.style.display = "none" とするのでは?

あと、ラジオボタンの change イベントのリスナで表示非表示を制御しないと望む動きにならないはずですが、質問のコードにはそれが見当たりません。どうなっているのですか?
コメントありがとうございます。
そもそもが色々間違えているようですね。。。

回答に書きましたのでそちらを見てください。

質問者さん、回答したのでフィードバックを返してください。役に立った/立たなかったぐらいはすぐに返せるのでは? 役に立たなかったならどこがダメかを書くとより期待に近い回答が出てくるかも。
返信がおそくなり大変申し訳ありませんでした。
自分が思っていた以上に処理を書いてあげなければいけなかったですね。。。
もっと勉強します。

回答5件
あなたの回答
tips
プレビュー