回答編集履歴

2

補足の追加。

2017/03/22 14:06

投稿

kei344
kei344

スコア69407

test CHANGED
@@ -169,3 +169,29 @@
169
169
  } ); // 未テスト
170
170
 
171
171
  ```
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+ 【jQueryのoff()を使いこなす - to-R】
180
+
181
+ [http://blog.webcreativepark.net/2015/08/01-115625.html](http://blog.webcreativepark.net/2015/08/01-115625.html)
182
+
183
+
184
+
185
+ 【.off() | jQuery 1.9 日本語リファレンス | js STUDIO】
186
+
187
+ [http://js.studio-kingdom.com/jquery/events/off](http://js.studio-kingdom.com/jquery/events/off)
188
+
189
+
190
+
191
+ 【.off() | jQuery API Documentation】
192
+
193
+ [http://api.jquery.com/off/](http://api.jquery.com/off/)
194
+
195
+
196
+
197
+

1

ミスがあったため修正。

2017/03/22 14:06

投稿

kei344
kei344

スコア69407

test CHANGED
@@ -91,3 +91,81 @@
91
91
  } ); // 未テスト
92
92
 
93
93
  ```
94
+
95
+
96
+
97
+ ---
98
+
99
+
100
+
101
+ **追記:**
102
+
103
+
104
+
105
+ `$_inputs.on` を忘れていました。
106
+
107
+
108
+
109
+ ```JavaScript
110
+
111
+ $( function() {
112
+
113
+ $( 'form' ).each( function(i, element) {
114
+
115
+ const tgt = '[name="L_NAME"], [name="F_NAME"], [name="L_KANA"], [name="F_KANA"], [name="PC_MAIL"], [name="PC_MAIL_CONFIRM1"], [name="PC_MAIL_CONFIRM2"], [name="ZIP"], [name="ADDR2"], [name="TEL"], [name="PASSWORD"], [name="PASSWORD2"], [name="ADDR1"], [name="KESSAI_ID"]';
116
+
117
+ const add = ', [name="CREDIT_COUNT"], [name="SECURITY_CD"], [name="CREDIT_NAME"], [name="CREDIT_NO"], [name="CREDIT_LIMIT_MONTH"], '[name="CREDIT_LIMIT_YEAR"]';
118
+
119
+ let $_inputs, $_input_textarea_select;
120
+
121
+ //radio,checkの要素を指定
122
+
123
+ const radio_names = $.unique( $( '[name="KESSAI_ID"]', element ).map( function( i, e ) { return e.name; } ).get() );
124
+
125
+
126
+
127
+ //クレジットカードにチェックを入れたらカウントする要素を追加
128
+
129
+ $( 'input[value="51"]' ).on( 'click', function() {
130
+
131
+ if ( $( this ).prop( 'checked' ) == true ) {
132
+
133
+ $_inputs = $( tgt + add, element );
134
+
135
+ } else {
136
+
137
+ $_inputs = $( tgt, element );
138
+
139
+ }
140
+
141
+ $_input_textarea_select = $_inputs.not( '[name="KESSAI_ID"]' );
142
+
143
+ $_inputs.off( 'input.tgt change.tgt' ).on( 'input.tgt change.tgt', function() {
144
+
145
+ let len = $_input_textarea_select.length + radio_names.length;
146
+
147
+ let count = len;
148
+
149
+ $_input_textarea_select.each( function(i, ele) {
150
+
151
+ if ( $.trim( $( ele ).val() ) ) { count--; }
152
+
153
+ } );
154
+
155
+ $.each( radio_names, function(i, v) {
156
+
157
+ if ( $_inputs.filter( '[name="' + v + '"]:checked' ).length ) { count--; }
158
+
159
+ } );
160
+
161
+ $( '.number', element ).html( count );
162
+
163
+ } ).change();
164
+
165
+ } ).click();
166
+
167
+ } );
168
+
169
+ } ); // 未テスト
170
+
171
+ ```