回答編集履歴

1

調整

2023/04/14 10:58

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -44,3 +44,61 @@
44
44
  </fieldset>
45
45
  <div class="hide">thanks!</div>
46
46
  ```
47
+
48
+ # 調整
49
+ Q3とQ4を選んだときに説明を表示
50
+ ```javascript
51
+ <script>
52
+ document.addEventListener('change',({target})=>{
53
+ if(target.matches('.q')){
54
+ target.closest('fieldset').querySelector('.next').disabled=false;
55
+ target.closest('fieldset').querySelector('.active')?.classList.remove('active');
56
+ if(target.matches('[data-id]')) document.querySelector(target.dataset.id)?.classList.add('active');
57
+ }
58
+ });
59
+ document.addEventListener('click',({target})=>{
60
+ if(target.matches('.next')){
61
+ target.closest('fieldset').nextElementSibling.classList.remove('hide');
62
+ }
63
+ });
64
+ </script>
65
+ <style>
66
+ .hide:not(.active){display:none;}
67
+ </style>
68
+ <fieldset>
69
+ <legend>Q1</legend>
70
+ <label><input type="radio" name="q1" value="1" class="q">1</label>
71
+ <label><input type="radio" name="q1" value="2" class="q">2</label>
72
+ <input type="button" class="next" value="next" disabled>
73
+ </fieldset>
74
+ <fieldset class="hide">
75
+ <legend>Q2</legend>
76
+ <label><input type="radio" name="q2" value="1" class="q">1</label>
77
+ <label><input type="radio" name="q2" value="2" class="q">2</label>
78
+ <label><input type="radio" name="q2" value="3" class="q">3</label>
79
+ <input type="button" class="next" value="next" disabled>
80
+ </fieldset>
81
+ <fieldset class="hide">
82
+ <legend>Q3</legend>
83
+ <label><input type="radio" name="q3" value="1" data-id="#q3-1" class="q">1</label>
84
+ <label><input type="radio" name="q3" value="2" data-id="#q3-2" class="q">2</label>
85
+ <label><input type="radio" name="q3" value="3" data-id="#q3-3" class="q">3</label>
86
+ <input type="button" class="next" value="next" disabled>
87
+ <div id="q3-1" class="hide">1が選ばれました</div>
88
+ <div id="q3-2" class="hide">2が選ばれました</div>
89
+ <div id="q3-3" class="hide">3が選ばれました</div>
90
+ </fieldset>
91
+ <fieldset class="hide">
92
+ <legend>Q4</legend>
93
+ <label><input type="radio" name="q4" value="1" data-id="#q4-1" class="q">1</label>
94
+ <label><input type="radio" name="q4" value="2" data-id="#q4-2" class="q">2</label>
95
+ <label><input type="radio" name="q4" value="3" data-id="#q4-3" class="q">3</label>
96
+ <label><input type="radio" name="q4" value="4" data-id="#q4-4" class="q">4</label>
97
+ <input type="button" class="next" value="next" disabled>
98
+ <div id="q4-1" class="hide">1が選ばれました</div>
99
+ <div id="q4-2" class="hide">2が選ばれました</div>
100
+ <div id="q4-3" class="hide">3が選ばれました</div>
101
+ <div id="q4-4" class="hide">4が選ばれました</div>
102
+ </fieldset>
103
+ <div class="hide">thanks!</div>
104
+ ```