mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-11-14 06:10:10 +00:00
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
|
function serializeForm(id: string): Object {
|
||
|
const form = document.getElementById(id) as HTMLFormElement;
|
||
|
let formData = {};
|
||
|
for (let i = 0; i < form.elements.length; i++) {
|
||
|
const el = form.elements[i];
|
||
|
if ((el as HTMLInputElement).type == "submit") {
|
||
|
continue;
|
||
|
}
|
||
|
let name = (el as HTMLInputElement).name;
|
||
|
if (!name) {
|
||
|
name = el.id;
|
||
|
}
|
||
|
switch ((el as HTMLInputElement).type) {
|
||
|
case "checkbox":
|
||
|
formData[name] = (el as HTMLInputElement).checked;
|
||
|
break;
|
||
|
case "text":
|
||
|
case "password":
|
||
|
case "email":
|
||
|
case "number":
|
||
|
formData[name] = (el as HTMLInputElement).value;
|
||
|
break;
|
||
|
case "select-one":
|
||
|
case "select":
|
||
|
let val: string | number = (el as HTMLSelectElement).value;
|
||
|
if (+val != NaN) {
|
||
|
val = +val;
|
||
|
}
|
||
|
formData[name] = val;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
return formData;
|
||
|
}
|