teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

いろんな人のアドバイスを元に完成したものを追記しました。自己かいけつではないので、こちらに記載しています。

2019/06/16 06:03

投稿

kitty
kitty

スコア15

title CHANGED
File without changes
body CHANGED
@@ -118,4 +118,62 @@
118
118
 
119
119
  正直全くわからないので・・・何かヒントでも回答でも
120
120
  なんでもいただけたら嬉しいです。
121
- よろしくお願いします。
121
+ よろしくお願いします。
122
+
123
+ ### 追記
124
+ 皆様のアドバイスを元に完成したものを一応記載します。
125
+ disabledの付け外しが少し苦戦したのでどなたかの参考になれば幸いです。
126
+ (もっと効率いい書き方はあると思いますが・・)
127
+ forEach文は勉強中のためfor文で。
128
+
129
+ ```javascript
130
+ let hiddenAdd;
131
+ let hiddenRemove;
132
+ //属性を追加
133
+ const hiddenAddFunc = (hiddenAdd) => {
134
+ for(let i = 0;i < hiddenAdd.length;i++) {
135
+ hiddenAdd[i].setAttribute('disabled','disabled');
136
+ }
137
+ }
138
+ //属性を削除
139
+ const hiddenRemoveFunc = (hiddenRemove) => {
140
+ for(let i = 0;i < hiddenRemove.length;i++) {
141
+ hiddenRemove[i].removeAttribute('disabled');
142
+ }
143
+ }
144
+ //判定文
145
+ let flag = 0;
146
+ const hantei = (flag) => {
147
+ if(flag === 1) {
148
+ let hiddenAdd = telArea.querySelectorAll('input');
149
+ let hiddenRemove = mailArea.querySelectorAll('input');
150
+ hiddenAddFunc(hiddenAdd);
151
+ hiddenRemoveFunc(hiddenRemove);
152
+ } else if(flag === 2) {
153
+ let hiddenAdd = mailArea.querySelectorAll('input');
154
+ let hiddenRemove = telArea.querySelectorAll('input');
155
+ hiddenAddFunc(hiddenAdd);
156
+ hiddenRemoveFunc(hiddenRemove);
157
+ }
158
+ }
159
+
160
+ const output = () => {
161
+ for(let i = 0;i < radios.length;i++) {
162
+ if(radios[i].checked) {
163
+ result = radios[i].value;
164
+ if(result === 'メール') {
165
+ mailArea.classList.remove('is-hidden');
166
+ telArea.classList.add('is-hidden');
167
+ let flag = 1;
168
+ hantei(flag);
169
+ } else {
170
+ telArea.classList.remove('is-hidden');
171
+ mailArea.classList.add('is-hidden');
172
+ let flag = 2;
173
+ hantei(flag);
174
+ }
175
+
176
+ }
177
+ }
178
+ }
179
+ ```

1

('.requireMail[name="require[]"]')に修正

2019/06/16 06:03

投稿

kitty
kitty

スコア15

title CHANGED
File without changes
body CHANGED
@@ -74,7 +74,7 @@
74
74
  const form = document.getElementById('formArea');
75
75
  const targets = document.getElementById('requireMail');
76
76
  const value = targets.getAttribute(name);
77
- const elm = document.querySelectorAll('.requireMail input[name="require[]"]');//設定はしているものの使い方がわからない
77
+ const elm = document.querySelectorAll('.requireMail[name="require[]"]');//設定はしているものの使い方がわからない
78
78
 
79
79
  let result = null;
80
80
  const radios = document.getElementsByName('ご希望の連絡方法');