2019-12-09
描述
将表单中的所有元素编码为一个查询字符串。
提示
- 使用
FormData
构造器将 HTMLform
转换为FormData
- 使用
Array.from()
将 FormData 转换为数组,传递一个 map 函数做为第二个参数 - 使用
Array.prototype.map()
和window.encodeURIComponent()
将每一个字段中的值进行编码 - 使用带有适当参数的
Array.prototype.join()
将其转换为所需要的查询字符串
代码
const serializeForm = form =>
Array.from(new FormData(form), field => field.map(encodeURIComponent).join('=')).join('&');
示例
获取表单中的查询字符串:
serializeForm(document.querySelector('#form')); // email=test%40email.com&name=Test%20Name