Browse Source
`serializeFormToObject ` Supports multi-level depth objects.
Resolve #11640
pull/11659/head
maliming
5 years ago
No known key found for this signature in database
GPG Key ID: 96224957E51C89E
1 changed files with
19 additions and
10 deletions
-
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; |
|
|
|
|