質問編集履歴

5

意図的に内容を抹消する行為にあたるため

2021/05/20 05:38

投稿

nasamunag
nasamunag

スコア22

test CHANGED
File without changes
test CHANGED
@@ -1 +1,227 @@
1
+ ### 前提・実現したいこと
2
+
3
+ 記述式一応の完成を見たが、コードをスマートにしたい、具体的には、
4
+
5
+ document.a1.answer.valueの値が入っているかどうかで分岐させたいが、
6
+
7
+ if (!empty(document.a1.answer.value)) {
8
+
9
+ がなぜかできない。
10
+
11
+ 提示したソース(選択式)を記述式にする事には成功した。
12
+
13
+ ■■な機能を実装中に以下のエラーメッセージが発生しました。
14
+
15
+ ### 発生している問題・エラーメッセージ
16
+
17
+ ```
18
+
19
+ エラーもしくは思うように動かない。
20
+
21
+ ```
22
+
23
+ ### 該当のソースコード
24
+
25
+ ```javascript
26
+
27
+ <!DOCTYPE HTML>
28
+
29
+ <html>
30
+
31
+ <head>
32
+
1
- 都合上、コード、日本語等を中略しました、質問内容は、質疑応答をご参考下さい。
33
+ <meta charset="utf-8">
34
+
35
+ <title>三択クイズ</title>
36
+
37
+ </head>
38
+
39
+ <body>
40
+
41
+ <h1>三択クイズ</h1>
42
+
43
+ <hr>
44
+
45
+ <h2>問題</h2>
46
+
47
+ <div id="text_q"></div>
48
+
49
+ <h2>選択</h2>
50
+
51
+ <div id="text_s"></div>
52
+
53
+ <h2>解答</h2>
54
+
55
+ <div id="text_a"></div>
56
+
57
+ <script type="text/javascript">
58
+
59
+ //問題と解答
60
+
61
+ qa = new Array();
62
+
63
+ qa[0] = ["イルカを漢字で書くとどれ?","海豚","海牛","河豚",1];
64
+
65
+ qa[1] = ["クラゲを漢字で書くとどれ?","水浮","水母","水星",2];
66
+
67
+ qa[2] = ["カタツムリを漢字で書くとどれ?","禍牛","鍋牛","蝸牛",3];
68
+
69
+ qa[3] = ["バッタを漢字で書くとどれ?","飛蝗","飛蟻","飛脚",1];
70
+
71
+ qa[4] = ["タツノオトシゴを英語にするとどれ?","sea fish","sea horse","sea dragon",2];
72
+
73
+ qa[5] = ["マグロを英語にするとどれ?","funa","suna","tuna",3];
74
+
75
+ qa[6] = ["トンボを英語にするとどれ?","fly","dragonfly","butterfly",2];
76
+
77
+ qa[7] = ["ヒトデを英語にするとどれ?","starfish","starshell","starmine",1];
78
+
79
+ qa[8] = ["恒星の中で最も明るい星は?","デネブ","スピカ","シリウス",3];
80
+
81
+ qa[9] = ["惑星の中で最も重たいのはどれ?","太陽","木星","天王星",2];
82
+
83
+ //初期設定
84
+
85
+ q_sel = 3; //選択肢の数
86
+
87
+ setReady();
88
+
89
+ //初期設定
90
+
91
+ function setReady() {
92
+
93
+ count = 0; //問題番号
94
+
95
+ ansers = new Array(); //解答記録
96
+
97
+
98
+
99
+ //最初の問題
100
+
101
+ quiz();
102
+
103
+ }
104
+
105
+ //問題表示
106
+
107
+ function quiz() {
108
+
109
+ var s, n;
110
+
111
+ //問題
112
+
113
+ document.getElementById("text_q").innerHTML = (count + 1) + "問目:" + qa[count][0];
114
+
115
+ //選択肢
116
+
117
+ s = "";
118
+
119
+ for (n=1;n<=q_sel;n++) {
120
+
121
+ s += "【<a href='javascript:anser(" + n + ")'>" + n + ":" + qa[count][n] + "</a>】";
122
+
123
+ }
124
+
125
+ document.getElementById("text_s").innerHTML = s;
126
+
127
+ }
128
+
129
+ //解答表示
130
+
131
+ function anser(num) {
132
+
133
+ var s;
134
+
135
+ s = (count + 1) + "問目:";
136
+
137
+ //答え合わせ
138
+
139
+ if (num == qa[count][q_sel + 1]) {
140
+
141
+ //正解
142
+
143
+ ansers[count] = "○";
144
+
145
+ } else {
146
+
147
+ ansers[count] = "×";
148
+
149
+ }
150
+
151
+ s += ansers[count] + qa[count][num];
152
+
153
+ document.getElementById("text_a").innerHTML = s;
154
+
155
+
156
+
157
+ //次の問題を表示
158
+
159
+ count++;
160
+
161
+ if (count < qa.length) {
162
+
163
+ quiz();
164
+
165
+ } else {
166
+
167
+ //終了
168
+
169
+ s = "<table border='2'><caption>成績発表</caption>";
170
+
171
+ //1行目
172
+
173
+ s += "<tr><th>問題</th>";
174
+
175
+ for (n=0;n<qa.length;n++) {
176
+
177
+ s += "<th>" + (n+1) + "</th>";
178
+
179
+ }
180
+
181
+ s += "</tr>";
182
+
183
+ //2行目
184
+
185
+ s += "<tr><th>成績</th>";
186
+
187
+ for (n=0;n<qa.length;n++) {
188
+
189
+ s += "<td>" + ansers[n] + "</td>";
190
+
191
+ }
192
+
193
+ s += "</tr>";
194
+
195
+ s += "</table>";
196
+
197
+ document.getElementById("text_q").innerHTML = s;
198
+
199
+ //次の選択肢
200
+
201
+ s = "【<a href='javascript:history.back()'>前のページに戻る</a>】";
202
+
203
+ s += "【<a href='javascript:setReady()'>同じ問題を最初から</a>】";
204
+
205
+ s += "【<a href=''>次の問題に進む</a>】";
206
+
207
+ document.getElementById("text_s").innerHTML = s;
208
+
209
+ }
210
+
211
+ }
212
+
213
+ </script>
214
+
215
+ </body>
216
+
217
+ </html>
218
+
219
+ ```
220
+
221
+ ### 試したこと
222
+
223
+ ダブルクオーテーションをクオーテーションにしたりした。
224
+
225
+ ### 補足情報(FW/ツールのバージョンなど)
226
+
227
+ もっと前後のコードを書く必要がある場合言ってください。

4

都合上、コード、日本語等を中略しました、質問内容は、質疑応答をご参考下さい。

2021/05/20 05:37

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,261 +1 @@
1
- ### 前提・実現したいこと
2
-
3
-
4
-
5
- 記述式一応の完成を見たが、コードをスマートにしたい、具体的には、
6
-
7
- document.a1.answer.valueの値が入っているかどうかで分岐させたいが、
8
-
9
- if (!empty(document.a1.answer.value)) {
10
-
11
- がなぜかできない。
12
-
13
-
14
-
15
- 提示したソース(選択式)を記述式にする事には成功した。
16
-
17
-
18
-
19
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
20
-
21
-
22
-
23
- ### 発生している問題・エラーメッセージ
24
-
25
-
26
-
27
- ```
28
-
29
- エラーもしくは思うように動かない。
30
-
31
- ```
32
-
33
-
34
-
35
- ### 該当のソースコード
36
-
37
-
38
-
39
- ```javascript
40
-
41
- <!DOCTYPE HTML>
42
-
43
- <html>
44
-
45
- <head>
46
-
47
- <meta charset="utf-8">
1
+ 都合上、コード、日本語等を中略しました、質問内容は、質疑応答をご参考下さい。
48
-
49
- <title>三択クイズ</title>
50
-
51
- </head>
52
-
53
- <body>
54
-
55
- <h1>三択クイズ</h1>
56
-
57
- <hr>
58
-
59
- <h2>問題</h2>
60
-
61
- <div id="text_q"></div>
62
-
63
- <h2>選択</h2>
64
-
65
- <div id="text_s"></div>
66
-
67
- <h2>解答</h2>
68
-
69
- <div id="text_a"></div>
70
-
71
-
72
-
73
- <script type="text/javascript">
74
-
75
- //問題と解答
76
-
77
- qa = new Array();
78
-
79
- qa[0] = ["イルカを漢字で書くとどれ?","海豚","海牛","河豚",1];
80
-
81
- qa[1] = ["クラゲを漢字で書くとどれ?","水浮","水母","水星",2];
82
-
83
- qa[2] = ["カタツムリを漢字で書くとどれ?","禍牛","鍋牛","蝸牛",3];
84
-
85
- qa[3] = ["バッタを漢字で書くとどれ?","飛蝗","飛蟻","飛脚",1];
86
-
87
- qa[4] = ["タツノオトシゴを英語にするとどれ?","sea fish","sea horse","sea dragon",2];
88
-
89
- qa[5] = ["マグロを英語にするとどれ?","funa","suna","tuna",3];
90
-
91
- qa[6] = ["トンボを英語にするとどれ?","fly","dragonfly","butterfly",2];
92
-
93
- qa[7] = ["ヒトデを英語にするとどれ?","starfish","starshell","starmine",1];
94
-
95
- qa[8] = ["恒星の中で最も明るい星は?","デネブ","スピカ","シリウス",3];
96
-
97
- qa[9] = ["惑星の中で最も重たいのはどれ?","太陽","木星","天王星",2];
98
-
99
-
100
-
101
- //初期設定
102
-
103
- q_sel = 3; //選択肢の数
104
-
105
-
106
-
107
- setReady();
108
-
109
-
110
-
111
- //初期設定
112
-
113
- function setReady() {
114
-
115
- count = 0; //問題番号
116
-
117
- ansers = new Array(); //解答記録
118
-
119
-
120
-
121
- //最初の問題
122
-
123
- quiz();
124
-
125
- }
126
-
127
-
128
-
129
- //問題表示
130
-
131
- function quiz() {
132
-
133
- var s, n;
134
-
135
- //問題
136
-
137
- document.getElementById("text_q").innerHTML = (count + 1) + "問目:" + qa[count][0];
138
-
139
- //選択肢
140
-
141
- s = "";
142
-
143
- for (n=1;n<=q_sel;n++) {
144
-
145
- s += "【<a href='javascript:anser(" + n + ")'>" + n + ":" + qa[count][n] + "</a>】";
146
-
147
- }
148
-
149
- document.getElementById("text_s").innerHTML = s;
150
-
151
- }
152
-
153
-
154
-
155
- //解答表示
156
-
157
- function anser(num) {
158
-
159
- var s;
160
-
161
- s = (count + 1) + "問目:";
162
-
163
- //答え合わせ
164
-
165
- if (num == qa[count][q_sel + 1]) {
166
-
167
- //正解
168
-
169
- ansers[count] = "○";
170
-
171
- } else {
172
-
173
- ansers[count] = "×";
174
-
175
- }
176
-
177
- s += ansers[count] + qa[count][num];
178
-
179
- document.getElementById("text_a").innerHTML = s;
180
-
181
-
182
-
183
- //次の問題を表示
184
-
185
- count++;
186
-
187
- if (count < qa.length) {
188
-
189
- quiz();
190
-
191
- } else {
192
-
193
- //終了
194
-
195
- s = "<table border='2'><caption>成績発表</caption>";
196
-
197
- //1行目
198
-
199
- s += "<tr><th>問題</th>";
200
-
201
- for (n=0;n<qa.length;n++) {
202
-
203
- s += "<th>" + (n+1) + "</th>";
204
-
205
- }
206
-
207
- s += "</tr>";
208
-
209
- //2行目
210
-
211
- s += "<tr><th>成績</th>";
212
-
213
- for (n=0;n<qa.length;n++) {
214
-
215
- s += "<td>" + ansers[n] + "</td>";
216
-
217
- }
218
-
219
- s += "</tr>";
220
-
221
- s += "</table>";
222
-
223
- document.getElementById("text_q").innerHTML = s;
224
-
225
- //次の選択肢
226
-
227
- s = "【<a href='javascript:history.back()'>前のページに戻る</a>】";
228
-
229
- s += "【<a href='javascript:setReady()'>同じ問題を最初から</a>】";
230
-
231
- s += "【<a href=''>次の問題に進む</a>】";
232
-
233
- document.getElementById("text_s").innerHTML = s;
234
-
235
- }
236
-
237
- }
238
-
239
- </script>
240
-
241
- </body>
242
-
243
- </html>
244
-
245
- ```
246
-
247
-
248
-
249
- ### 試したこと
250
-
251
-
252
-
253
- ダブルクオーテーションをクオーテーションにしたりした。
254
-
255
-
256
-
257
- ### 補足情報(FW/ツールのバージョンなど)
258
-
259
-
260
-
261
- もっと前後のコードを書く必要がある場合言ってください。

3

進捗があったため。

2021/05/20 00:11

投稿

nasamunag
nasamunag

スコア22

test CHANGED
File without changes
test CHANGED
@@ -2,306 +2,248 @@
2
2
 
3
3
 
4
4
 
5
+ 記述式一応の完成を見たが、コードをスマートにしたい、具体的には、
6
+
7
+ document.a1.answer.valueの値が入っているかどうかで分岐させたいが、
8
+
5
- 入力された値を関数anserの引数に持たせてanserを実行したいのですが、
9
+ if (!empty(document.a1.answer.value)) {
6
-
10
+
7
- やり方よく分りません
11
+ なぜできない
12
+
13
+
14
+
8
-
15
+ 提示したソース(選択式)を記述式にする事には成功した。
16
+
17
+
18
+
9
-
19
+ ■■な機能を実装中に以下のエラーメッセージが発生しました。
20
+
21
+
22
+
10
-
23
+ ### 発生している問題・エラーメッセージ
24
+
25
+
26
+
27
+ ```
28
+
29
+ エラーもしくは思うように動かない。
30
+
31
+ ```
32
+
33
+
34
+
11
- 提示したソースの、
35
+ ### 該当のソースコード
36
+
37
+
38
+
39
+ ```javascript
40
+
41
+ <!DOCTYPE HTML>
42
+
43
+ <html>
44
+
45
+ <head>
46
+
47
+ <meta charset="utf-8">
48
+
49
+ <title>三択クイズ</title>
50
+
51
+ </head>
52
+
53
+ <body>
54
+
55
+ <h1>三択クイズ</h1>
56
+
57
+ <hr>
58
+
59
+ <h2>問題</h2>
60
+
61
+ <div id="text_q"></div>
62
+
63
+ <h2>選択</h2>
64
+
65
+ <div id="text_s"></div>
66
+
67
+ <h2>解答</h2>
68
+
69
+ <div id="text_a"></div>
70
+
71
+
72
+
73
+ <script type="text/javascript">
74
+
75
+ //問題と解答
76
+
77
+ qa = new Array();
78
+
79
+ qa[0] = ["イルカを漢字で書くとどれ?","海豚","海牛","河豚",1];
80
+
81
+ qa[1] = ["クラゲを漢字で書くとどれ?","水浮","水母","水星",2];
82
+
83
+ qa[2] = ["カタツムリを漢字で書くとどれ?","禍牛","鍋牛","蝸牛",3];
84
+
85
+ qa[3] = ["バッタを漢字で書くとどれ?","飛蝗","飛蟻","飛脚",1];
86
+
87
+ qa[4] = ["タツノオトシゴを英語にするとどれ?","sea fish","sea horse","sea dragon",2];
88
+
89
+ qa[5] = ["マグロを英語にするとどれ?","funa","suna","tuna",3];
90
+
91
+ qa[6] = ["トンボを英語にするとどれ?","fly","dragonfly","butterfly",2];
92
+
93
+ qa[7] = ["ヒトデを英語にするとどれ?","starfish","starshell","starmine",1];
94
+
95
+ qa[8] = ["恒星の中で最も明るい星は?","デネブ","スピカ","シリウス",3];
96
+
97
+ qa[9] = ["惑星の中で最も重たいのはどれ?","太陽","木星","天王星",2];
98
+
99
+
100
+
101
+ //初期設定
102
+
103
+ q_sel = 3; //選択肢の数
104
+
105
+
106
+
107
+ setReady();
108
+
109
+
110
+
111
+ //初期設定
112
+
113
+ function setReady() {
114
+
115
+ count = 0; //問題番号
116
+
117
+ ansers = new Array(); //解答記録
118
+
119
+
120
+
121
+ //最初の問題
122
+
123
+ quiz();
124
+
125
+ }
126
+
127
+
12
128
 
13
129
  //問題表示
14
130
 
15
131
  function quiz() {
16
132
 
17
- var s, n;
133
+ var s, n;
18
-
134
+
19
- //問題
135
+ //問題
20
-
136
+
21
- document.getElementById("text_q").innerHTML = (count + 1) + "問目:" + qa[count][0];
137
+ document.getElementById("text_q").innerHTML = (count + 1) + "問目:" + qa[count][0];
22
-
138
+
23
- //選択肢
139
+ //選択肢
24
-
140
+
25
- s = "";
141
+ s = "";
26
-
142
+
27
- for (n=1;n<=q_sel;n++) {
143
+ for (n=1;n<=q_sel;n++) {
28
-
29
- if (qa[count][n] != "") {
144
+
30
-
31
- s += "【<a href='javascript:anser(" + n + ")'>" + n + ":" + qa[count][n] + "</a>】";
145
+ s += "【<a href='javascript:anser(" + n + ")'>" + n + ":" + qa[count][n] + "</a>】";
146
+
147
+ }
148
+
149
+ document.getElementById("text_s").innerHTML = s;
32
150
 
33
151
  }
34
152
 
153
+
154
+
155
+ //解答表示
156
+
157
+ function anser(num) {
158
+
159
+ var s;
160
+
161
+ s = (count + 1) + "問目:";
162
+
163
+ //答え合わせ
164
+
165
+ if (num == qa[count][q_sel + 1]) {
166
+
167
+ //正解
168
+
169
+ ansers[count] = "○";
170
+
171
+ } else {
172
+
173
+ ansers[count] = "×";
174
+
175
+ }
176
+
177
+ s += ansers[count] + qa[count][num];
178
+
179
+ document.getElementById("text_a").innerHTML = s;
180
+
181
+
182
+
183
+ //次の問題を表示
184
+
185
+ count++;
186
+
187
+ if (count < qa.length) {
188
+
189
+ quiz();
190
+
191
+ } else {
192
+
193
+ //終了
194
+
195
+ s = "<table border='2'><caption>成績発表</caption>";
196
+
197
+ //1行目
198
+
199
+ s += "<tr><th>問題</th>";
200
+
201
+ for (n=0;n<qa.length;n++) {
202
+
203
+ s += "<th>" + (n+1) + "</th>";
204
+
205
+ }
206
+
207
+ s += "</tr>";
208
+
209
+ //2行目
210
+
211
+ s += "<tr><th>成績</th>";
212
+
213
+ for (n=0;n<qa.length;n++) {
214
+
215
+ s += "<td>" + ansers[n] + "</td>";
216
+
217
+ }
218
+
219
+ s += "</tr>";
220
+
221
+ s += "</table>";
222
+
223
+ document.getElementById("text_q").innerHTML = s;
224
+
225
+ //次の選択肢
226
+
227
+ s = "【<a href='javascript:history.back()'>前のページに戻る</a>】";
228
+
229
+ s += "【<a href='javascript:setReady()'>同じ問題を最初から</a>】";
230
+
231
+ s += "【<a href=''>次の問題に進む</a>】";
232
+
233
+ document.getElementById("text_s").innerHTML = s;
234
+
235
+ }
236
+
35
237
  }
36
238
 
37
- document.getElementById("text_s").innerHTML = s;
38
-
39
- }
40
-
41
- この部分を改良したいのです。これは選択式の問題ですので、if文で、選択式は選択処理に、
42
-
43
- 記述式は記述処理に飛ばそうとして、記述式では、この選択処理の部分を
44
-
45
- s += "<FORM name="a1"><font size='2' color='#ff0000'></font><INPUT type='text' name='answer'><INPUT type='button' value='回答する' onClick='anser()'>"; }
46
-
47
- document.getElementById("text_s").innerHTML = s;
48
-
49
- に変えました、これで一応フォームは表示されましたが、
50
-
51
- //解答表示
239
+ </script>
52
-
53
- function anser(num) {
240
+
54
-
55
- var s;
56
-
57
- s = "設問" + (count + 1) + ":";
58
-
59
- //答え合わせ
241
+ </body>
60
-
61
- ansers[count] = qa[count][num+q_sel];
242
+
62
-
63
- s = qa[count][num] + "(" + qa[count][num+q_sel] + "点)";
64
-
65
- document.getElementById("text_a").innerHTML = s;
66
-
67
- この部分、numに、記述式で入力した値を入力できれば後はうまく進むのですが、それがなぜかできません。
68
-
69
-
70
-
71
- 一応、フォームに入力→送信→anser関数実行までは行われますが、
72
-
73
- データの中身が送信できていないので「×」になります。データの中身をnumに入力できれば解決しそうなのですが。
74
-
75
-
76
-
77
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
78
-
79
-
80
-
81
- ### 発生している問題・エラーメッセージ
243
+ </html>
82
-
83
-
84
244
 
85
245
  ```
86
246
 
87
- エラーもしくは思うように動かない。
88
-
89
- ```
90
-
91
-
92
-
93
- ### 該当のソースコード
94
-
95
-
96
-
97
- ```javascript
98
-
99
- <!DOCTYPE HTML>
100
-
101
- <html>
102
-
103
- <head>
104
-
105
- <meta charset="utf-8">
106
-
107
- <title>三択クイズ</title>
108
-
109
- </head>
110
-
111
- <body>
112
-
113
- <h1>三択クイズ</h1>
114
-
115
- <hr>
116
-
117
- <h2>問題</h2>
118
-
119
- <div id="text_q"></div>
120
-
121
- <h2>選択</h2>
122
-
123
- <div id="text_s"></div>
124
-
125
- <h2>解答</h2>
126
-
127
- <div id="text_a"></div>
128
-
129
-
130
-
131
- <script type="text/javascript">
132
-
133
- //問題と解答
134
-
135
- qa = new Array();
136
-
137
- qa[0] = ["イルカを漢字で書くとどれ?","海豚","海牛","河豚",1];
138
-
139
- qa[1] = ["クラゲを漢字で書くとどれ?","水浮","水母","水星",2];
140
-
141
- qa[2] = ["カタツムリを漢字で書くとどれ?","禍牛","鍋牛","蝸牛",3];
142
-
143
- qa[3] = ["バッタを漢字で書くとどれ?","飛蝗","飛蟻","飛脚",1];
144
-
145
- qa[4] = ["タツノオトシゴを英語にするとどれ?","sea fish","sea horse","sea dragon",2];
146
-
147
- qa[5] = ["マグロを英語にするとどれ?","funa","suna","tuna",3];
148
-
149
- qa[6] = ["トンボを英語にするとどれ?","fly","dragonfly","butterfly",2];
150
-
151
- qa[7] = ["ヒトデを英語にするとどれ?","starfish","starshell","starmine",1];
152
-
153
- qa[8] = ["恒星の中で最も明るい星は?","デネブ","スピカ","シリウス",3];
154
-
155
- qa[9] = ["惑星の中で最も重たいのはどれ?","太陽","木星","天王星",2];
156
-
157
-
158
-
159
- //初期設定
160
-
161
- q_sel = 3; //選択肢の数
162
-
163
-
164
-
165
- setReady();
166
-
167
-
168
-
169
- //初期設定
170
-
171
- function setReady() {
172
-
173
- count = 0; //問題番号
174
-
175
- ansers = new Array(); //解答記録
176
-
177
-
178
-
179
- //最初の問題
180
-
181
- quiz();
182
-
183
- }
184
-
185
-
186
-
187
- //問題表示
188
-
189
- function quiz() {
190
-
191
- var s, n;
192
-
193
- //問題
194
-
195
- document.getElementById("text_q").innerHTML = (count + 1) + "問目:" + qa[count][0];
196
-
197
- //選択肢
198
-
199
- s = "";
200
-
201
- for (n=1;n<=q_sel;n++) {
202
-
203
- s += "【<a href='javascript:anser(" + n + ")'>" + n + ":" + qa[count][n] + "</a>】";
204
-
205
- }
206
-
207
- document.getElementById("text_s").innerHTML = s;
208
-
209
- }
210
-
211
-
212
-
213
- //解答表示
214
-
215
- function anser(num) {
216
-
217
- var s;
218
-
219
- s = (count + 1) + "問目:";
220
-
221
- //答え合わせ
222
-
223
- if (num == qa[count][q_sel + 1]) {
224
-
225
- //正解
226
-
227
- ansers[count] = "○";
228
-
229
- } else {
230
-
231
- ansers[count] = "×";
232
-
233
- }
234
-
235
- s += ansers[count] + qa[count][num];
236
-
237
- document.getElementById("text_a").innerHTML = s;
238
-
239
-
240
-
241
- //次の問題を表示
242
-
243
- count++;
244
-
245
- if (count < qa.length) {
246
-
247
- quiz();
248
-
249
- } else {
250
-
251
- //終了
252
-
253
- s = "<table border='2'><caption>成績発表</caption>";
254
-
255
- //1行目
256
-
257
- s += "<tr><th>問題</th>";
258
-
259
- for (n=0;n<qa.length;n++) {
260
-
261
- s += "<th>" + (n+1) + "</th>";
262
-
263
- }
264
-
265
- s += "</tr>";
266
-
267
- //2行目
268
-
269
- s += "<tr><th>成績</th>";
270
-
271
- for (n=0;n<qa.length;n++) {
272
-
273
- s += "<td>" + ansers[n] + "</td>";
274
-
275
- }
276
-
277
- s += "</tr>";
278
-
279
- s += "</table>";
280
-
281
- document.getElementById("text_q").innerHTML = s;
282
-
283
- //次の選択肢
284
-
285
- s = "【<a href='javascript:history.back()'>前のページに戻る</a>】";
286
-
287
- s += "【<a href='javascript:setReady()'>同じ問題を最初から</a>】";
288
-
289
- s += "【<a href=''>次の問題に進む</a>】";
290
-
291
- document.getElementById("text_s").innerHTML = s;
292
-
293
- }
294
-
295
- }
296
-
297
- </script>
298
-
299
- </body>
300
-
301
- </html>
302
-
303
- ```
304
-
305
247
 
306
248
 
307
249
  ### 試したこと

2

説明追加。

2020/04/11 03:53

投稿

nasamunag
nasamunag

スコア22

test CHANGED
File without changes
test CHANGED
@@ -68,6 +68,12 @@
68
68
 
69
69
 
70
70
 
71
+ 一応、フォームに入力→送信→anser関数実行までは行われますが、
72
+
73
+ データの中身が送信できていないので「×」になります。データの中身をnumに入力できれば解決しそうなのですが。
74
+
75
+
76
+
71
77
  ■■な機能を実装中に以下のエラーメッセージが発生しました。
72
78
 
73
79
 

1

元のソース全体を載せました。

2020/04/10 08:09

投稿

nasamunag
nasamunag

スコア22

test CHANGED
File without changes
test CHANGED
@@ -6,13 +6,65 @@
6
6
 
7
7
  やり方がよく分かりません。
8
8
 
9
+
10
+
11
+ 提示したソースの、
12
+
13
+ //問題表示
14
+
15
+ function quiz() {
16
+
17
+ var s, n;
18
+
19
+ //問題
20
+
21
+ document.getElementById("text_q").innerHTML = (count + 1) + "問目:" + qa[count][0];
22
+
23
+ //選択肢
24
+
25
+ s = "";
26
+
27
+ for (n=1;n<=q_sel;n++) {
28
+
9
- document.a1.answer.valueが入力値になるようなのですが、
29
+ if (qa[count][n] != "") {
10
-
30
+
11
- <INPUT type='button' value='回答する' onClick='document.a1.answer.value'>
31
+ s += "【<a href='javascript:anser(" + n + ")'>" + n + ":" + qa[count][n] + "</a>】";
32
+
12
-
33
+ }
34
+
35
+ }
36
+
37
+ document.getElementById("text_s").innerHTML = s;
38
+
39
+ }
40
+
41
+ この部分を改良したいのです。これは選択式の問題ですので、if文で、選択式は選択処理に、
42
+
43
+ 記述式は記述処理に飛ばそうとして、記述式では、この選択処理の部分を
44
+
45
+ s += "<FORM name="a1"><font size='2' color='#ff0000'></font><INPUT type='text' name='answer'><INPUT type='button' value='回答する' onClick='anser()'>"; }
46
+
47
+ document.getElementById("text_s").innerHTML = s;
48
+
49
+ に変えました、これで一応フォームは表示されましたが、
50
+
13
- としてもうまくいきません。
51
+ //解答表示
52
+
14
-
53
+ function anser(num) {
54
+
55
+ var s;
56
+
57
+ s = "設問" + (count + 1) + ":";
58
+
59
+ //答え合わせ
60
+
61
+ ansers[count] = qa[count][num+q_sel];
62
+
63
+ s = qa[count][num] + "(" + qa[count][num+q_sel] + "点)";
64
+
65
+ document.getElementById("text_a").innerHTML = s;
66
+
15
- sに入っているめ書方に問題があるのでしょうかどうすば引数に持たられるのでしょうか
67
+ 部分、num、記述式で力し値を入力でれば後はうまく進むのですががなぜかで
16
68
 
17
69
 
18
70
 
@@ -38,15 +90,209 @@
38
90
 
39
91
  ```javascript
40
92
 
93
+ <!DOCTYPE HTML>
94
+
95
+ <html>
96
+
97
+ <head>
98
+
99
+ <meta charset="utf-8">
100
+
101
+ <title>三択クイズ</title>
102
+
103
+ </head>
104
+
105
+ <body>
106
+
107
+ <h1>三択クイズ</h1>
108
+
109
+ <hr>
110
+
111
+ <h2>問題</h2>
112
+
113
+ <div id="text_q"></div>
114
+
115
+ <h2>選択</h2>
116
+
117
+ <div id="text_s"></div>
118
+
119
+ <h2>解答</h2>
120
+
121
+ <div id="text_a"></div>
122
+
123
+
124
+
125
+ <script type="text/javascript">
126
+
127
+ //問題と解答
128
+
129
+ qa = new Array();
130
+
131
+ qa[0] = ["イルカを漢字で書くとどれ?","海豚","海牛","河豚",1];
132
+
133
+ qa[1] = ["クラゲを漢字で書くとどれ?","水浮","水母","水星",2];
134
+
135
+ qa[2] = ["カタツムリを漢字で書くとどれ?","禍牛","鍋牛","蝸牛",3];
136
+
137
+ qa[3] = ["バッタを漢字で書くとどれ?","飛蝗","飛蟻","飛脚",1];
138
+
41
- s += "<FORM name="a1"><font size='2' color='#ff0000'></font><INPUT type='text' name='answer'><INPUT
139
+ qa[4] = ["タツノオトシゴを英語にするとどれ?","sea fish","sea horse","sea dragon",2];
42
-
43
-
44
-
140
+
45
- type='button' value='回答する' onClick='anser()'>";
141
+ qa[5] = ["マグロを英語にするとどれ?","funa","suna","tuna",3];
142
+
46
-
143
+ qa[6] = ["トンボを英語にするとどれ?","fly","dragonfly","butterfly",2];
144
+
145
+ qa[7] = ["ヒトデを英語にするとどれ?","starfish","starshell","starmine",1];
146
+
147
+ qa[8] = ["恒星の中で最も明るい星は?","デネブ","スピカ","シリウス",3];
148
+
149
+ qa[9] = ["惑星の中で最も重たいのはどれ?","太陽","木星","天王星",2];
150
+
151
+
152
+
153
+ //初期設定
154
+
155
+ q_sel = 3; //選択肢の数
156
+
157
+
158
+
159
+ setReady();
160
+
161
+
162
+
163
+ //初期設定
164
+
165
+ function setReady() {
166
+
167
+ count = 0; //問題番号
168
+
169
+ ansers = new Array(); //解答記録
170
+
171
+
172
+
173
+ //最初の問題
174
+
175
+ quiz();
176
+
47
- }
177
+ }
178
+
179
+
180
+
48
-
181
+ //問題表示
182
+
183
+ function quiz() {
184
+
185
+ var s, n;
186
+
187
+ //問題
188
+
189
+ document.getElementById("text_q").innerHTML = (count + 1) + "問目:" + qa[count][0];
190
+
191
+ //選択肢
192
+
193
+ s = "";
194
+
195
+ for (n=1;n<=q_sel;n++) {
196
+
197
+ s += "【<a href='javascript:anser(" + n + ")'>" + n + ":" + qa[count][n] + "</a>】";
198
+
199
+ }
200
+
49
- document.getElementById("text_s").innerHTML = s;
201
+ document.getElementById("text_s").innerHTML = s;
202
+
203
+ }
204
+
205
+
206
+
207
+ //解答表示
208
+
209
+ function anser(num) {
210
+
211
+ var s;
212
+
213
+ s = (count + 1) + "問目:";
214
+
215
+ //答え合わせ
216
+
217
+ if (num == qa[count][q_sel + 1]) {
218
+
219
+ //正解
220
+
221
+ ansers[count] = "○";
222
+
223
+ } else {
224
+
225
+ ansers[count] = "×";
226
+
227
+ }
228
+
229
+ s += ansers[count] + qa[count][num];
230
+
231
+ document.getElementById("text_a").innerHTML = s;
232
+
233
+
234
+
235
+ //次の問題を表示
236
+
237
+ count++;
238
+
239
+ if (count < qa.length) {
240
+
241
+ quiz();
242
+
243
+ } else {
244
+
245
+ //終了
246
+
247
+ s = "<table border='2'><caption>成績発表</caption>";
248
+
249
+ //1行目
250
+
251
+ s += "<tr><th>問題</th>";
252
+
253
+ for (n=0;n<qa.length;n++) {
254
+
255
+ s += "<th>" + (n+1) + "</th>";
256
+
257
+ }
258
+
259
+ s += "</tr>";
260
+
261
+ //2行目
262
+
263
+ s += "<tr><th>成績</th>";
264
+
265
+ for (n=0;n<qa.length;n++) {
266
+
267
+ s += "<td>" + ansers[n] + "</td>";
268
+
269
+ }
270
+
271
+ s += "</tr>";
272
+
273
+ s += "</table>";
274
+
275
+ document.getElementById("text_q").innerHTML = s;
276
+
277
+ //次の選択肢
278
+
279
+ s = "【<a href='javascript:history.back()'>前のページに戻る</a>】";
280
+
281
+ s += "【<a href='javascript:setReady()'>同じ問題を最初から</a>】";
282
+
283
+ s += "【<a href=''>次の問題に進む</a>】";
284
+
285
+ document.getElementById("text_s").innerHTML = s;
286
+
287
+ }
288
+
289
+ }
290
+
291
+ </script>
292
+
293
+ </body>
294
+
295
+ </html>
50
296
 
51
297
  ```
52
298