// 表单序列化,IE9+
HTMLFormElement.prototype.serialize = function() {
var form = this;
// 表单数据
var arrFormData = [], objFormData = {}; [].slice.call(form.elements).forEach(function(ele) {
// 元素类型和状态
var type = ele.type, disabled = ele.disabled; // 元素的键值
var name = ele.name, value = encodeURIComponent(ele.value || 'on'); // name参数必须,元素非disabled态,一些类型忽略
if (!name || disabled || !type || (/^reset|submit|image$/i.test(type)) || (/^checkbox|radio$/i.test(type) && !ele.checked)) {
return;
} type = type.toLowerCase(); if (type !== 'select-multiple') {
if (objFormData[name]) {
objFormData[name].push(value);
} else {
objFormData[name] = [value];
}
} else {
[].slice.call(ele.querySelectorAll('option')).forEach(function(option) {
var optionValue = encodeURIComponent(option.value || 'on');
if (option.selected) {
if (objFormData[name]) {
objFormData[name].push(optionValue);
} else {
objFormData[name] = [optionValue];
}
}
});
}
}); for (var key in objFormData) {
arrFormData.push(key + '=' + objFormData[key].join());
} return arrFormData.join('&');
};

最新文章

  1. Java实现上传下载
  2. php函数、php定义数组和数组遍历
  3. SQL Server SA 密码丢失无法连接数据库怎么办?
  4. c语言头文件和源文件不在同一个目录
  5. 如何使用 orachk 工具
  6. careercup-排序和查找 11.4
  7. (转) UIALertView的基本用法与UIAlertViewDelegate对对话框的事件处理方法
  8. 开发记录_自学Python写爬虫程序爬取csdn个人博客信息
  9. 解决WP7的32位图像渐变色色阶问题
  10. Redis 集群解决方案比较
  11. 关于eclipse创建Maven项目创建的问题
  12. JAVA中的静态成员
  13. 2019年5月1日起安卓应用应基于API 26开发,那么API等级是啥?
  14. 洛谷P1233 木棍加工题解 LIS
  15. Zookeeper原理、安装、基本使用和API
  16. February 12th, 2018 Week 7th Monday
  17. Maven 项目 查找指定包的引用位置
  18. git 远程删除文件
  19. Spark RDD操作之Map系算子
  20. 修改json文件

热门文章

  1. 北京Uber优步司机奖励政策(12月8日)
  2. 佛山Uber优步司机奖励政策(1月11日~1月17日)
  3. 「日常训练」Kefa and Park(Codeforces Round #321 Div. 2 C)
  4. 小程序页面的四种文件(JSON、WXML、WXSS、JS)加载顺序
  5. Java学习 · 初识 多线程
  6. java并发总览
  7. 剑指offer-从上往下打印二叉树22
  8. opencv-学习笔记(6)图像梯度Sobel以及canny边缘检测
  9. Python高级编程-序列化
  10. POJ 1269 Intersecting Lines(直线求交点)