ラジオボタンで表示を切り替えたく下記の記述で実現したのですが.001クラスの要素が繰り返しで自動生成されており、
最初の要素にしかスクリプトが効きません。
条件分岐のif (none[0].checked) の部分が0と1だと最初の部分ににしか適応されていないのかと思っています。
なのでif (none[0].checked) の部分の数値を変更した場合変更した値に対応する要素にスクリプトが効いています。
要素が増えていった場合この指定をすべてに適応するように動的に増やしていくことは可能でしょうか。
js
1 function switch() { 2 none = document.getElementsByName("marker") 3 if (none[0].checked) { 4 // ラジオ1が選択されたら下記を実行 5 $(".onList").css('display', 'block'); 6 $(".offList").css('display', 'none'); 7 } else if (none[1].checked) { 8 // ラジオ2が選択されたら下記を実行 9 $(".onList").css('display', 'none'); 10 $(".offList").css('display', 'block'); 11 } 12 } 13 window.addEventListener('load', switch());
html
1<div class"001"> 2<div class="form-check"> 3 <input class="form-check-input" type="radio" name="marker" value="no" onclick="switch()" checked> 4 <label class="form-check-label"> ラジオ1</label> 5</div> 6 7<div class="form-check"> 8 <input class="form-check-input" type="radio" name="marker" value="off" onclick="switch()"> 9 <label class="form-check-label"> ラジオ2</label> 10</div> 11 12<dl class="onList"> 13 <dt><label>テスト1</label></dt> 14 <dd> 15 <input type="text" id="" name="hogehoge" maxlength='6'> 16 </dd> 17 <dt><label>テスト2</label></dt> 18 <dd> 19 <input type="radio" name="hoge" value="a">a 20 <input type="radio" name="hoge" value="b">b 21 <input type="radio" name="hoge" value="c">c 22 <input type="radio" name="hoge" value="d">d 23 </dd> 24</dl> 25<div class="offList"> 26 <dt><label>テスト3</label></dt> 27 <dd><input type="text" name="hogehogehoge"></dd> 28</div> 29</div>
回答1件
あなたの回答
tips
プレビュー