mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-11-13 05:40:10 +00:00
Harvey Tindall
32b8ed4aa2
i wanted to split up the web ui components into multiple files, and figured it'd be a good chance to try out typescript. run make typescript to compile everything in ts/ and put it in data/static/. This is less of a rewrite and more of a refactoring, most of it still works the same but bits have been cleaned up too. Remaining javascript found in setup.js and form.html
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;
|
|
}
|