@mdui/jq
Version:
拥有和 jQuery 相似 API 的轻量级 JavaScript 工具库
29 lines (28 loc) • 855 B
JavaScript
import { $ } from '../$.js';
import { getFormControlsValue } from './serializeArray.js';
/**
* 将表单元素的值转换为对象
*/
$.fn.serializeObject = function () {
const result = {};
getFormControlsValue(this).forEach((element) => {
const { name, value } = element;
if (!Object.prototype.hasOwnProperty.call(result, name)) {
result[name] = value;
}
else {
const originalValue = result[name];
if (!Array.isArray(originalValue)) {
result[name] = [originalValue];
}
// value 可能是数组,合并到原有数组中
if (Array.isArray(value)) {
result[name].push(...value);
}
else {
result[name].push(value);
}
}
});
return result;
};