@@ -32,7 +32,8 @@ define([
32
32
this . _on ( events ) ;
33
33
} ,
34
34
_updateWishlistData : function ( event ) {
35
- var dataToAdd = { } ;
35
+ var dataToAdd = { } ,
36
+ isFileUploaded = false ;
36
37
if ( event . handleObj . selector == this . options . qtyInfo ) {
37
38
this . _updateAddToWishlistButton ( { } ) ;
38
39
event . stopPropagation ( ) ;
@@ -41,20 +42,24 @@ define([
41
42
var self = this ;
42
43
$ ( event . handleObj . selector ) . each ( function ( index , element ) {
43
44
if ( $ ( element ) . is ( 'input[type=text]' )
44
- || $ ( element ) . is ( 'textarea' ) ) {
45
+ || $ ( element ) . is ( 'input[type=checkbox]:checked' )
46
+ || $ ( element ) . is ( 'input[type=radio]:checked' )
47
+ || $ ( '#' + element . id + ' option:selected' ) . length
48
+ || $ ( element ) . is ( 'textarea' )
49
+ ) {
45
50
dataToAdd = $ . extend ( { } , dataToAdd , self . _getElementData ( element ) ) ;
46
51
return ;
47
52
}
48
- if ( $ ( element ) . is ( 'input[type=file]' ) ) {
53
+ if ( $ ( element ) . is ( 'input[type=file]' ) && $ ( element ) . val ( ) ) {
49
54
var hidden = $ ( 'input[name=' + $ ( element ) . attr ( 'name' ) + '_action]' ) ;
50
55
dataToAdd = $ . extend ( { } , dataToAdd , self . _getElementData ( hidden ) ) ;
51
- return ;
52
- }
53
- if ( $ ( element ) . is ( ':checked' )
54
- || $ ( element ) . find ( ':checked' ) . length ) {
55
- dataToAdd = $ . extend ( { } , dataToAdd , self . _getElementData ( element ) ) ;
56
+ isFileUploaded = true ;
56
57
}
57
58
} ) ;
59
+ console . log ( dataToAdd ) ;
60
+ if ( isFileUploaded ) {
61
+ this . bindFormSubmit ( ) ;
62
+ }
58
63
this . _updateAddToWishlistButton ( dataToAdd ) ;
59
64
event . stopPropagation ( ) ;
60
65
} ,
@@ -107,6 +112,23 @@ define([
107
112
$ . each ( dataToRemove , function ( key , value ) {
108
113
delete params . data [ key ] ;
109
114
} ) ;
115
+ } ,
116
+ bindFormSubmit : function ( ) {
117
+ var self = this ;
118
+ $ ( '[data-action="add-to-wishlist"]' ) . on ( 'click' , function ( event ) {
119
+ event . stopPropagation ( ) ;
120
+ event . preventDefault ( ) ;
121
+
122
+ var element = $ ( 'input[type=file]' + self . options . customOptionsInfo ) ,
123
+ params = $ ( event . currentTarget ) . data ( 'post' ) ,
124
+ form = $ ( element ) . closest ( 'form' ) ,
125
+ action = params . action ;
126
+ if ( params . data . uenc ) {
127
+ action += 'uenc/' + params . data . uenc ;
128
+ }
129
+
130
+ $ ( form ) . attr ( 'action' , action ) . submit ( ) ;
131
+ } ) ;
110
132
}
111
133
} ) ;
112
134
0 commit comments