javascript表单(form)序列化
2013-11-05 11:45
253 查看
function serialize(form){ var part =[]; var field = null; var i; var j; var len; var optLen; var option; var optVal; for(i=0,len=form.elements.length;i<len;i++){ field = form.elements[i]; switch(field.type){ case "select-one": case "select-multiple": if(field.name.length){ for(j=0,optLen=field.options.length;j<optLen;j++){ option = field.options[j]; if(option.selected){ optVal=""; if(option.hasAttribute){ optVal = (option.hasAttribute("value")?option.value:option.text); }else{ optVal = (option.attributes["value"].specified?option.value:option.text); } part.push(encodeURIComponent(field.name)+"="+encodeURIComponent(optVal)); } } } break; case undefined:// 字符集 case "file":// 文件输入 case "submit":// 提交按钮 case "reset":// 重置按钮 case "button":// 自定义按钮 break; case "radio":// 单选按钮 case "checkbox":// 复选框 if(!field.checked){ break; } default: if(field.name.length){ part.push(encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value)); } } } return part.join("&"); }
1)对表单字段的名称和值进行URL编码,使用和号(&)分隔。
2)不发送禁用的表单字段
3)只发送勾选的复选框和单选按钮
4)不发送type为"reset"和”button"的按钮
5)多选框中每个选中的值单独一个条目
6)在单击提交按钮提交表单的情况下,也会发送提交按钮,否则不发送提交按钮。也包括type为“image”的<input>元素。
7)select元素的值就是选中的<option>元素的value的值,如果option元素没有value属性,则为选中的文本值。
相关文章推荐
- JavaScript获取页面中表单(form)数量的方法
- 用 Javascript 验证表单(form)中多选框(checkbox)值
- 用 Javascript 验证表单(form)中的单选(radio)值
- Javascript和Java获取各种form表单信息
- JavaScript 提交表单的方式 (Using JavaScript Submit Form)
- JavaScript实现动态添加Form表单元素的方法示例
- Javascript实现HTML表单form多个HttpPost请求
- form表单数据交互(输出序列化表单值)
- JavaScript对于Form的序列化和填充数据
- 【jQuery】form表单元素序列化为json对象
- JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)
- onsubmit=return false阻止form表单提交javascript
- 将form表单中的值序列化成对象
- JavaScript基础(5)之form表单-基本操作
- form 转json,将form表单中的数据序列化数组后转换为Json
- Javascript和Java获取各种form表单信息的简单实例
- HTML一个form表单中有两个(多个)submit,后台如何区分(纯HTML实现,无需javascript)
- 如何通过javascript提交表单form
- Javascript基础form表单
- JavaScript清空、重置form表单