回答編集履歴

2

調整

2018/01/23 09:02

投稿

yambejp
yambejp

スコア114779

test CHANGED
@@ -84,6 +84,10 @@
84
84
 
85
85
  ```
86
86
 
87
+ $(function () {
88
+
89
+ $("button").on('click', function (e) {
90
+
87
91
  var f=$(this).prop('form').elements;
88
92
 
89
93
  var n=[];

1

調整

2018/01/23 09:02

投稿

yambejp
yambejp

スコア114779

test CHANGED
@@ -7,6 +7,10 @@
7
7
  <form>
8
8
 
9
9
  <input type="text" name="t1" value="123">
10
+
11
+ <input type="text" name="t2" value="456" disabled>
12
+
13
+ <input type="hidden" name="h1" value="789">
10
14
 
11
15
  <select name="s1">
12
16
 
@@ -32,7 +36,11 @@
32
36
 
33
37
  <button type="button">submit</button>
34
38
 
39
+ <textarea name="ta1">ta</textarea>
40
+
35
41
  </form>
42
+
43
+
36
44
 
37
45
 
38
46
 
@@ -70,15 +78,11 @@
70
78
 
71
79
  フォームのエレメンツを走査する必要があります
72
80
 
81
+ # 調整版
82
+
73
83
 
74
84
 
75
85
  ```
76
-
77
- $(function () {
78
-
79
- $("button").on('click', function (e) {
80
-
81
- var fd=new FormData($(this).prop('form'));/*formdataはとりあえずおいておく*/
82
86
 
83
87
  var f=$(this).prop('form').elements;
84
88
 
@@ -86,13 +90,31 @@
86
90
 
87
91
  for(i=0;i<f.length;i++){
88
92
 
89
- if(f.item(i).name) n.push(f.item(i).name);
93
+ if(f.item(i).name && !f.item(i).disabled){
94
+
95
+ var ty=f.item(i).type;
96
+
97
+ if((ty=="radio" || ty=="checkbox") && f.item(i).checked ||
98
+
99
+ ty=="text" ||
100
+
101
+ ty=="hidden" ||
102
+
103
+ ty=="textarea" ||
104
+
105
+ ty=="select-one"
106
+
107
+ ){
108
+
109
+ n.push([f.item(i).name,f.item(i).value]);
110
+
111
+ }
112
+
113
+ }
90
114
 
91
115
  }
92
116
 
93
- n=n.filter(function(i,j,k){return k.indexOf(i)==j;});
94
-
95
- console.log(n);/*nameの一覧を表示*/
117
+ console.log(n);
96
118
 
97
119
  e.preventDefault();
98
120