Skip to content

Commit 51a0425

Browse files
authored
fix(api): empty dropdown data was overriden by previous data
Revert and proper fix of #2175 I forgot to check for an empty dropdown value. Jquery unfortunately does not return the field at all on serializeArray when multiple named fields (which should return an array) are empty.
1 parent c77b750 commit 51a0425

File tree

1 file changed

+4
-5
lines changed
  • src/definitions/behaviors

1 file changed

+4
-5
lines changed

src/definitions/behaviors/api.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ $.api = $.fn.api = function(parameters) {
7474
url,
7575
data,
7676
requestStartTime,
77+
originalData,
7778

7879
// standard module
7980
element = this,
@@ -86,6 +87,7 @@ $.api = $.fn.api = function(parameters) {
8687

8788
initialize: function() {
8889
if(!methodInvoked) {
90+
originalData = settings.data;
8991
module.bind.events();
9092
}
9193
module.instantiate();
@@ -197,7 +199,7 @@ $.api = $.fn.api = function(parameters) {
197199

198200
// Add form content
199201
if(settings.serializeForm) {
200-
settings.data = module.add.formData(settings.data);
202+
settings.data = module.add.formData(originalData || settings.data);
201203
}
202204

203205
// call beforesend and get any settings changes
@@ -428,7 +430,7 @@ $.api = $.fn.api = function(parameters) {
428430
formData = {},
429431
hasOtherData
430432
;
431-
data = data || settings.data;
433+
data = data || originalData || settings.data;
432434
hasOtherData = $.isPlainObject(data);
433435

434436
$.each($form.serializeArray(), function (i, element) {
@@ -443,9 +445,6 @@ $.api = $.fn.api = function(parameters) {
443445
} else {
444446
formData[element.name] = element.value;
445447
}
446-
if(hasOtherData && data[element.name]) {
447-
delete data[element.name];
448-
}
449448
});
450449

451450
if(hasOtherData) {

0 commit comments

Comments
 (0)