Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Covert form data to JSON string

<form name = 'test' >
    <input type='text' name = 'login'>
    <input type='email' name = 'email'>
</form>

If I use JSON.serialize($(form)).serializeArray();
I get [{"name":"login","value":"a value"},{"name":"email","value":"a email"}] while I need {"login":"a login","email":"a email"}. How to do that??

like image 308
Yuriy Korovko Avatar asked Mar 09 '23 12:03

Yuriy Korovko


1 Answers

You can pass the <form> to FormData(), iterate key, value pairs of FormData instance, set each key and value to an object property and value

let form = document.forms["test"];

let fd = new FormData(form);

let data = {};

for (let [key, prop] of fd) {
  data[key] = prop;
}

data = JSON.stringify(data, null, 2);

console.log(data);
<form name='test'>
  <input type='text' name='login' value="a login">
  <input type='email' name='email' value="a email">
</form>
like image 168
guest271314 Avatar answered Mar 15 '23 12:03

guest271314