回答編集履歴

2

ペア

2018/04/20 08:23

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -79,3 +79,109 @@
79
79
  </body>
80
80
 
81
81
  ```
82
+
83
+
84
+
85
+ # ペアを消す
86
+
87
+
88
+
89
+ ```javascript
90
+
91
+ <?PHP
92
+
93
+ print_r($_POST);
94
+
95
+ ?>
96
+
97
+ <script>
98
+
99
+ document.addEventListener('submit',function(e){
100
+
101
+ var dummy=document.querySelector('#dummy');
102
+
103
+ if(dummy) dummy.parentNode.removeChild(dummy);
104
+
105
+ var t=e.target;
106
+
107
+ if(t.name=="order"){
108
+
109
+ e.preventDefault();
110
+
111
+ var f=t.cloneNode(true);
112
+
113
+ f.style.display="none";
114
+
115
+ console.log(f);
116
+
117
+ f.setAttribute("id","dummy");
118
+
119
+ for(var i=f.elements.length-1;i>=0;i--){
120
+
121
+ var ele=f.elements[i];
122
+
123
+ if(ele.type.match(/text/) && (ele.value.match(/^0?$/))){
124
+
125
+ ele.parentNode.removeChild(ele);
126
+
127
+ if(r=ele.name.match(/^(item_)(\d+)$/)){;
128
+
129
+ var pair=f.elements[r[1]+"no_"+r[2]];
130
+
131
+ if(pair) pair.parentNode.removeChild(pair);
132
+
133
+ }
134
+
135
+ }
136
+
137
+ }
138
+
139
+ document.querySelector('body').appendChild(f);
140
+
141
+ f.submit();
142
+
143
+ };
144
+
145
+ });
146
+
147
+ </script>
148
+
149
+ <body>
150
+
151
+ <form name="order" method="post">
152
+
153
+ <input type="text" name="test" value="">
154
+
155
+
156
+
157
+
158
+
159
+ <input type="text" name="item_01" value="">
160
+
161
+ <input name="item_no_01" type="hidden" value="000001" />
162
+
163
+
164
+
165
+ <input type="text" name="item_02" value="">
166
+
167
+ <input name="item_no_02" type="hidden" value="000201" />
168
+
169
+
170
+
171
+ <input type="text" name="item_03" value="">
172
+
173
+ <input name="item_no_03" type="hidden" value="030001" />
174
+
175
+
176
+
177
+ <input type="text" name="item_04" value="">
178
+
179
+ <input name="item_no_04" type="hidden" value="000003" /><input type="submit" value="買い物かごに入れる">
180
+
181
+ </form>
182
+
183
+ </body>
184
+
185
+
186
+
187
+ ```

1

sample

2018/04/20 08:22

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -1,3 +1,81 @@
1
1
  別フォームを作ってサブミットすれば実現できると思いますが
2
2
 
3
3
  普通は、受け取った側で判断することです
4
+
5
+
6
+
7
+ # sample
8
+
9
+ 一応サンプルだけつけておきます
10
+
11
+ ```javascript
12
+
13
+ document.addEventListener('submit',function(e){
14
+
15
+ var dummy=document.querySelector('#dummy');
16
+
17
+ if(dummy) dummy.parentNode.removeChild(dummy);
18
+
19
+ var t=e.target;
20
+
21
+ if(t.name=="order"){
22
+
23
+ e.preventDefault();
24
+
25
+ var f=t.cloneNode(true);
26
+
27
+ f.style.display="none";
28
+
29
+ console.log(f);
30
+
31
+ f.setAttribute("id","dummy");
32
+
33
+ for(var i=f.elements.length-1;i>=0;i--){
34
+
35
+ var ele=f.elements[i];
36
+
37
+ if(ele.type=="text" && (ele.value=="" || ele.value=="0")){
38
+
39
+ ele.parentNode.removeChild(ele);
40
+
41
+ }
42
+
43
+ }
44
+
45
+ document.querySelector('body').appendChild(f);
46
+
47
+ f.submit();
48
+
49
+ };
50
+
51
+ });
52
+
53
+
54
+
55
+ ```
56
+
57
+ ```HTML
58
+
59
+ <body>
60
+
61
+ <form name="order" method="post">
62
+
63
+ <input type="text" name="item1" value="">
64
+
65
+ <input type="text" name="item2" value="">
66
+
67
+ <input type="text" name="item3" value="">
68
+
69
+ <input type="text" name="item4" value="">
70
+
71
+ <input type="text" name="item5" value="">
72
+
73
+ <input type="text" name="item6" value="">
74
+
75
+ <input type="submit" value="買い物かごに入れる">
76
+
77
+ </form>
78
+
79
+ </body>
80
+
81
+ ```