回答編集履歴

2

`input\[type=checkbox\]` のいずれかがチェックオンで `input\[type=submit\]` が活性化するように、`index` 値をフォームに埋め込むように修正

2016/05/18 19:37

投稿

think49
think49

スコア18172

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- - [input[type=radio] のチェックオンで input[type=submit} を有効化 - JSFiddle](https://jsfiddle.net/4hLf0bLu/)
11
+ - [input[type=checkbox] のチェックオンで input[type=submit] を有効化 - JSFiddle](https://jsfiddle.net/4hLf0bLu/2/)
12
12
 
13
13
 
14
14
 
@@ -36,9 +36,7 @@
36
36
 
37
37
 
38
38
 
39
- elements['submit'].disabled = inputs.filter(filterfn).length !== inputs.length;
39
+ elements['submit'].disabled = inputs.filter(filterfn).length === 0;
40
-
41
-
42
40
 
43
41
  }
44
42
 
@@ -46,7 +44,9 @@
46
44
 
47
45
  function handleSubmit (event) {
48
46
 
47
+ event.target.elements['index'] = ++event.data.index;
48
+
49
- console.log(++event.data.index);
49
+ console.log(event.data.index);
50
50
 
51
51
  event.preventDefault();
52
52
 
@@ -82,6 +82,8 @@
82
82
 
83
83
  <form id="sample" method="post" action="">
84
84
 
85
+ <input type="hidden" name="index" value="0" />
86
+
85
87
  <input type="checkbox" id="check1" name="answer[]" value="1">チェック1<br>
86
88
 
87
89
  <input type="checkbox" id="check2" name="answer[]" value="2">チェック2<br>
@@ -98,7 +100,9 @@
98
100
 
99
101
  ### 更新履歴
100
102
 
101
- - 2016/05/19 00:04 `input[type=radio]` のチェックオフで `input[type=submit]` が無効化されるように修正
103
+ - 2016/05/19 00:04 `input[type=checkbox]` のチェックオフで `input[type=submit]` が無効化されるように修正
104
+
105
+ - 2016/05/19 04:34 `input[type=checkbox]` のいずれかがチェックオンで `input[type=submit]` が活性化するように、`index` 値をフォームに埋め込むように修正
102
106
 
103
107
 
104
108
 

1

`input\[type=radio\]` のチェックオフで `input\[type=submit\]` が無効化されるように修正

2016/05/18 19:36

投稿

think49
think49

スコア18172

test CHANGED
@@ -1,10 +1,20 @@
1
+ ### change イベント
2
+
3
+
4
+
1
5
  `change` イベントを監視すれば input[type=submit] の有効化機能を実装可能ですが、submit したらページ遷移するので `++index` の結果は常に `1` になります。
2
6
 
3
7
  (下記コードではわかりやすいように `event.preventDefault()` してます。)
4
8
 
5
9
 
6
10
 
11
+ - [input[type=radio] のチェックオンで input[type=submit} を有効化 - JSFiddle](https://jsfiddle.net/4hLf0bLu/)
12
+
13
+
14
+
15
+ ```HTML
16
+
7
- ```JavaScript
17
+ <script>
8
18
 
9
19
  'use stirct';
10
20
 
@@ -26,11 +36,9 @@
26
36
 
27
37
 
28
38
 
29
- if (inputs.filter(filterfn).length === inputs.length) {
39
+ elements['submit'].disabled = inputs.filter(filterfn).length !== inputs.length;
30
40
 
31
- elements['submit'].disabled = false;
32
41
 
33
- }
34
42
 
35
43
  }
36
44
 
@@ -68,8 +76,34 @@
68
76
 
69
77
  });
70
78
 
79
+ </script>
80
+
81
+
82
+
83
+ <form id="sample" method="post" action="">
84
+
85
+ <input type="checkbox" id="check1" name="answer[]" value="1">チェック1<br>
86
+
87
+ <input type="checkbox" id="check2" name="answer[]" value="2">チェック2<br>
88
+
89
+ <input type="submit" id="submit" value="Submit">
90
+
91
+ <!-- <input type="button" id="submit" value="Submit"> -->
92
+
93
+ </form>
94
+
71
95
  ```
72
96
 
73
97
 
74
98
 
99
+ ### 更新履歴
100
+
101
+ - 2016/05/19 00:04 `input[type=radio]` のチェックオフで `input[type=submit]` が無効化されるように修正
102
+
103
+
104
+
105
+
106
+
107
+
108
+
75
109
  Re: milkif さん