回答編集履歴
2
補足の追加。
answer
CHANGED
@@ -83,4 +83,16 @@
|
|
83
83
|
} ).click();
|
84
84
|
} );
|
85
85
|
} ); // 未テスト
|
86
|
-
```
|
86
|
+
```
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
【jQueryのoff()を使いこなす - to-R】
|
91
|
+
[http://blog.webcreativepark.net/2015/08/01-115625.html](http://blog.webcreativepark.net/2015/08/01-115625.html)
|
92
|
+
|
93
|
+
【.off() | jQuery 1.9 日本語リファレンス | js STUDIO】
|
94
|
+
[http://js.studio-kingdom.com/jquery/events/off](http://js.studio-kingdom.com/jquery/events/off)
|
95
|
+
|
96
|
+
【.off() | jQuery API Documentation】
|
97
|
+
[http://api.jquery.com/off/](http://api.jquery.com/off/)
|
98
|
+
|
1
ミスがあったため修正。
answer
CHANGED
@@ -44,4 +44,43 @@
|
|
44
44
|
} ).change();
|
45
45
|
} );
|
46
46
|
} ); // 未テスト
|
47
|
+
```
|
48
|
+
|
49
|
+
---
|
50
|
+
|
51
|
+
**追記:**
|
52
|
+
|
53
|
+
`$_inputs.on` を忘れていました。
|
54
|
+
|
55
|
+
```JavaScript
|
56
|
+
$( function() {
|
57
|
+
$( 'form' ).each( function(i, element) {
|
58
|
+
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"]';
|
59
|
+
const add = ', [name="CREDIT_COUNT"], [name="SECURITY_CD"], [name="CREDIT_NAME"], [name="CREDIT_NO"], [name="CREDIT_LIMIT_MONTH"], '[name="CREDIT_LIMIT_YEAR"]';
|
60
|
+
let $_inputs, $_input_textarea_select;
|
61
|
+
//radio,checkの要素を指定
|
62
|
+
const radio_names = $.unique( $( '[name="KESSAI_ID"]', element ).map( function( i, e ) { return e.name; } ).get() );
|
63
|
+
|
64
|
+
//クレジットカードにチェックを入れたらカウントする要素を追加
|
65
|
+
$( 'input[value="51"]' ).on( 'click', function() {
|
66
|
+
if ( $( this ).prop( 'checked' ) == true ) {
|
67
|
+
$_inputs = $( tgt + add, element );
|
68
|
+
} else {
|
69
|
+
$_inputs = $( tgt, element );
|
70
|
+
}
|
71
|
+
$_input_textarea_select = $_inputs.not( '[name="KESSAI_ID"]' );
|
72
|
+
$_inputs.off( 'input.tgt change.tgt' ).on( 'input.tgt change.tgt', function() {
|
73
|
+
let len = $_input_textarea_select.length + radio_names.length;
|
74
|
+
let count = len;
|
75
|
+
$_input_textarea_select.each( function(i, ele) {
|
76
|
+
if ( $.trim( $( ele ).val() ) ) { count--; }
|
77
|
+
} );
|
78
|
+
$.each( radio_names, function(i, v) {
|
79
|
+
if ( $_inputs.filter( '[name="' + v + '"]:checked' ).length ) { count--; }
|
80
|
+
} );
|
81
|
+
$( '.number', element ).html( count );
|
82
|
+
} ).change();
|
83
|
+
} ).click();
|
84
|
+
} );
|
85
|
+
} ); // 未テスト
|
47
86
|
```
|