回答編集履歴

1

chousei

2025/04/21 03:00

投稿

yambejp
yambejp

スコア117667

test CHANGED
@@ -1 +1,56 @@
1
1
  【3つのセレクトボックス】の方は3つめのセレクトの値を参照していないように見えます。
2
+
3
+ # 参考
4
+ ```html
5
+ <script>
6
+ document.addEventListener('submit',e=>{
7
+ e.preventDefault();
8
+ const t=e.target;
9
+ const [x,y,z]=[t.elements['x'].value,t.elements['y'].value,t.elements['z'].value];
10
+ const obj={
11
+ "A":{"D":{"H":100,"I":200,"J":300},"E":1400,"F":1850,"G":2500},
12
+ "B":{"D":1200,"E":1850,"F":2400,"G":2800},
13
+ "C":{"D":2300,"E":2500,"F":2800,"G":3200},
14
+ };
15
+ const usp=new URLSearchParams();
16
+ usp.append('x',x);
17
+ usp.append('y',y);
18
+ if(x.value=='' ||
19
+ y.value=='' ||
20
+ (obj[x][y] instanceof Object && z=='')
21
+ ){
22
+ return false;
23
+ }
24
+ if(typeof obj[x][y]=="number"){
25
+ usp.append('content',obj[x][y]);
26
+ }else{
27
+ usp.append('z',z);
28
+ usp.append('content',obj[x][y][z]);
29
+ }
30
+ location.href='?'+usp.toString();
31
+ });
32
+ </script>
33
+ <form id="form">
34
+ <select name="x">
35
+ <option value="">--</option>
36
+ <option value="A">A</option>
37
+ <option value="B">B</option>
38
+ <option value="C">C</option>
39
+ </select>
40
+ <select name="y">
41
+ <option value="">--</option>
42
+ <option value="D">D</option>
43
+ <option value="E">E</option>
44
+ <option value="F">F</option>
45
+ <option value="G">G</option>
46
+ </select>
47
+ <select name="z">
48
+ <option value="">--</option>
49
+ <option value="H">H</option>
50
+ <option value="I">I</option>
51
+ <option value="J">J</option>
52
+ <option value="K">K</option>
53
+ </select>
54
+ <input type="submit" value="送信">
55
+ </form>
56
+ ```