回答編集履歴
2
別解を追加
test
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
`input`要素の抽出やJSONの生成まで自作するのはテストがしんどい気がします.
|
2
2
|
|
3
3
|
なので, `form`要素を使った代替案を考えました.
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
対処策・その1
|
4
8
|
|
5
9
|
|
6
10
|
|
@@ -89,3 +93,41 @@
|
|
89
93
|
NOTE:
|
90
94
|
|
91
95
|
とは言え, `name`属性のとり方(誤った重複)などによってはうまく動きません.
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
---
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
対処策・その2
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
jQueryの`serializeArray`メソッドを使う方法もあるようです.
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
参考:
|
112
|
+
|
113
|
+
[https://stackoverflow.com/questions/22195065/how-to-send-a-json-object-using-html-form-data](https://stackoverflow.com/questions/22195065/how-to-send-a-json-object-using-html-form-data)
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
```JavaScript
|
118
|
+
|
119
|
+
var formData = JSON.stringify($("#search_detail_panel").serializeArray());
|
120
|
+
|
121
|
+
console.log(formData);
|
122
|
+
|
123
|
+
```
|
124
|
+
|
125
|
+
これを実行すると次のようなJSONが得られます.
|
126
|
+
|
127
|
+
```JSON
|
128
|
+
|
129
|
+
[{"name":"panel_16","value":"3000"},{"name":"panel_17","value":"1"}]
|
130
|
+
|
131
|
+
```
|
132
|
+
|
133
|
+
最終的なJSONの形状があなたの求めている形と異なりますが, ここまでくれば後はデータの加工だけで済むでしょう.
|
1
何をするコードなのかについての補足を追加
test
CHANGED
@@ -1,8 +1,12 @@
|
|
1
1
|
`input`要素の抽出やJSONの生成まで自作するのはテストがしんどい気がします.
|
2
|
+
|
3
|
+
なので, `form`要素を使った代替案を考えました.
|
2
4
|
|
3
5
|
|
4
6
|
|
7
|
+
下記では`form`要素の「フォームデータ」(つまり, あるノードに含まれる`input`要素群の状態)をJSON化しています.
|
8
|
+
|
5
|
-
|
9
|
+
(同名のラジオボタンを単一の`RadioNodeList`オブジェクトに勝手にまとめてくれるので処理がシンプル)
|
6
10
|
|
7
11
|
|
8
12
|
|