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

回答編集履歴

2

できない原因も書いた方が良いと思ったので追記。

2020/04/11 12:09

投稿

m.ts10806
m.ts10806

スコア80896

answer CHANGED
@@ -1,3 +1,14 @@
1
+ > 反映されませんでした。
2
+
3
+ 原因と思われるもの。
4
+ ```
5
+ document.getElementsByName('submit_btn').style.color="black";
6
+ //getElementsByNameはElementListなので既にご自身でほかでやってるようにdocument.getElementsByName('submit_btn')[0]ってする必要があると思います。
7
+ ```
8
+
9
+ ただ、コードがかなり冗長に思いました。
10
+ cssでstyle先に準備しておけばコード自体は簡潔に書けそうです。
11
+
1
12
  最初から考えた方が早そうな気がしたので、ざっくり作り直してみました。
2
13
  一応、シンプルには書いたつもりです。
3
14
 

1

修正

2020/04/11 12:09

投稿

m.ts10806
m.ts10806

スコア80896

answer CHANGED
@@ -1,30 +1,33 @@
1
1
  最初から考えた方が早そうな気がしたので、ざっくり作り直してみました。
2
2
  一応、シンプルには書いたつもりです。
3
- 「ラベルの文字が未:白 済:黒」
4
3
 
4
+ ラベルの色だけ変えてもボタンは押せるので、属性の付け替えで対応します。
5
+
5
6
  ```html
7
+ <!--「利用規約に同意する」チェックボックス -->
6
8
  <label for="agreement">
7
9
  <input type="checkbox" name="agreement" id="agreement" value="1" class="checkbtn">
8
10
  利用規約に同意します
9
11
  </label>
12
+
13
+ <!--送信ボタン -->
10
- <input type="submit" name="submit_btn" class="submit" id="submit" value="送信" disabled><
14
+ <p class="buttons"><input type="submit" name="submit_btn" class="submit" id="submit" value="送信" disabled></p>
11
15
  ```
12
16
  ```css
13
- label{
17
+ #submit{
18
+ color:#000;
19
+ }
20
+ #submit:disabled{
14
21
  color:#fff;
15
22
  }
16
- label.checked{
17
- color:#000;
18
- }
19
23
  ```
20
24
  ```js
21
25
  window.addEventListener('DOMContentLoaded', () => {
22
26
  document.querySelector('#agreement').addEventListener('click', evt => {
23
- evt.currentTarget.parentNode.classList.remove('checked');
24
- document.querySelector('#submit').disabled = true;
27
+ let submit_button = document.querySelector('#submit');
28
+ submit_button.disabled = true;
25
29
  if (evt.currentTarget.checked) {
26
- evt.currentTarget.parentNode.classList.add('checked');
27
- document.querySelector('#submit').disabled = false;
30
+ submit_button.disabled = false;
28
31
  }
29
32
  });
30
33
  });