在 JavaScript 中,可以利用表单字段的 type 属性,连同name和value属性一起实现对表单的序列化。
有必须先搞清楚在表单提交期间,浏览器是怎样将数据发送给服务器的:
- 对表单字段的名称和值进行 URL 编码,使用和号(&)分隔。
- 不发送禁用的表单字段。
- 只发送勾选的复选框和单选按钮。
- 不发送type为”reset”和”button”的按钮。
- 多选选择框中的每个选中的值单独一个条目。
- 在单击提交按钮提交表单的情况下,也会发送提交按钮;否则,不发送提交按钮。也包括 type为”image”的
<input>
元素。 <select>
元素的值,就是选中的<option>
元素的value特性的值。如果<option>
元素没有value特性,则是<option>
元素的文本值。
在表单序列化过程中,一般不包含任何按钮字段。
1 | function serialize(form){ |