回答編集履歴

3

edit

2021/08/13 05:13

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -18,15 +18,13 @@
18
18
 
19
19
 
20
20
 
21
- if (e.target.value.length > 150) {
21
+ if (textarea.value.length > 150) {
22
22
 
23
23
  alert("150文字以内で記述してください。");
24
24
 
25
25
  submit.disabled = true;
26
26
 
27
- };
27
+ }else {
28
-
29
- if (e.target.value.length <= 150) {
30
28
 
31
29
  submit.disabled = false;
32
30
 
@@ -37,3 +35,9 @@
37
35
 
38
36
 
39
37
  ```
38
+
39
+
40
+
41
+ 150「より大きい」で指定してるのでelse ifしなくてもelseで十分だと思う。
42
+
43
+ あと改行も1字に含まれるのでテストの際は注意。

2

edit

2021/08/13 05:13

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -8,11 +8,11 @@
8
8
 
9
9
  ```js
10
10
 
11
-
11
+ let textarea = document.getElementById('question');
12
12
 
13
13
  textarea.addEventListener('keyup', (e) => {
14
14
 
15
- const textarea = document.getElementById('question');
15
+ textarea = document.getElementById('question');
16
16
 
17
17
  const submit = document.getElementById('submit');
18
18
 

1

edit

2021/08/13 05:11

投稿

m.ts10806
m.ts10806

スコア80850

test CHANGED
@@ -1,6 +1,8 @@
1
1
  デバッグされたら分かるかと思いますが、現在のコードだとイベント発生時の要素を取得してないので、要素が保持している情報は画面表示時のままです。
2
2
 
3
3
  イベント内で要素を取得してください。
4
+
5
+ しかもテキストエリアの方はIDがHTMLにないものを指定してませんか?
4
6
 
5
7
 
6
8
 
@@ -10,7 +12,7 @@
10
12
 
11
13
  textarea.addEventListener('keyup', (e) => {
12
14
 
13
- const textarea = document.getElementById('textarea');
15
+ const textarea = document.getElementById('question');
14
16
 
15
17
  const submit = document.getElementById('submit');
16
18