Browse Source

`serializeFormToObject ` Supports multi-level depth objects.

Resolve #11640
pull/11659/head
maliming 5 years ago
parent
commit
441d17567f
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 29
      framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/jquery-extensions.js

29
framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/jquery/jquery-extensions.js

@ -126,20 +126,29 @@
});
}
var getNames = function (index, variable) {
var name = '';
for (var i = 0; i <= index; i++) {
if (i == 0) {
name = variable + '[' + i + ']'
} else {
name += '][' + variable + '[' + i + ']'
}
}
return name;
}
data.map(function (x) {
//TODO: improve mapping. it only supports one level deep object.
var names = x.name.split(".");
if (names.length === 1 && !obj[names[0]]) {
obj[names[0]] = x.value;
}
else if (names.length === 2) {
if (!obj[names[0]]) {
obj[names[0]] = {};
}
if (!obj[names[0]][names[1]]) {
obj[names[0]][names[1]] = x.value;
for (var i = 0; i < names.length; i++) {
if (eval('!obj[' + getNames(i, 'names') + ']')) {
eval('obj[' + getNames(i, 'names') + '] = {}');
}
}
if ($.isEmptyObject(eval('obj[' + getNames(names.length - 1, 'names') + ']'))) {
eval('obj[' + getNames(names.length - 1, 'names') + '] = x.value');
}
});
return obj;

Loading…
Cancel
Save