(function (root, factory) { // 表单工具只处理跨页面通用转换,具体业务字段留在页面脚本中组织。 if (typeof module === 'object' && module.exports) { module.exports = factory(); return; } root.FormUtil = factory(); })(typeof globalThis !== 'undefined' ? globalThis : window, function () { 'use strict'; function trimOrUndefined(value) { if (value === undefined || value === null) return undefined; var text = String(value).trim(); return text ? text : undefined; } function toNumberOrUndefined(value) { var text = trimOrUndefined(value); if (text === undefined) return undefined; var numberValue = Number(text); return Number.isNaN(numberValue) ? undefined : numberValue; } function toBoolean(value) { if (value === true || value === false) return value; var text = trimOrUndefined(value); if (text === undefined) return false; return !['0', 'false', 'off', 'no'].includes(text.toLowerCase()); } function getControlValue(control) { if (!control || control.disabled || !control.name) return undefined; if (control.type === 'checkbox') return control.checked ? (control.value || 'on') : undefined; if (control.type === 'radio') return control.checked ? control.value : undefined; return control.value; } function getFormValues(form) { var values = {}; if (!form || !form.elements) return values; Array.prototype.forEach.call(form.elements, function (control) { var value = getControlValue(control); if (value !== undefined) values[control.name] = value; }); return values; } return { trimOrUndefined: trimOrUndefined, toNumberOrUndefined: toNumberOrUndefined, toBoolean: toBoolean, getFormValues: getFormValues }; });