在开发中有时需要在js中提交form表单数据,就需要将form表单进行序列化。

jquery提供的serialize方法能够实现。

$("#searchForm").serialize();

但是,观察输出的信息,发现serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串。

例如以下代码:

<form id="searchForm">
<input name="id" value="123"/>
<input name="cx" value="lklj"/>
</form>
<script type="text/javascript">
console.info($("#searchForm").serialize());
</script>

输出结果是:id=123&cx=lklj

serialize确实是能够解决一般的提交数据。但是有时我们需要的是一个object对象,而不是字符串(比如jqgrid reload时设置查询条件参数,就需要object对象)。

所以就需要提供一个能将form转化为对象的方法。参考自:http://www.cnblogs.com/yeminglong/p/3799282.html

(function(window, $) {
$.fn.serializeJson = function() {
var serializeObj = {};
var array = this.serializeArray();
var str = this.serialize();
$(array).each(
function() {
if (serializeObj[this.name]) {
if ($.isArray(serializeObj[this.name])) {
serializeObj[this.name].push(this.value);
} else {
serializeObj[this.name] = [
serializeObj[this.name], this.value ];
}
} else {
serializeObj[this.name] = this.value;
}
});
return serializeObj;
};
})(window, jQuery);

调用插件:

console.info($("#searchForm").serializeJson());

输出结果:Object {id: "123", cx: "lklj"}

最新文章

  1. 加深一下BlockingQueue的认识
  2. linux 内核升级
  3. Computer Network and Internet(1)
  4. VS2008调试技巧收集备用
  5. Nodejs in Visual Studio Code 14.IISNode与IIS7.x
  6. (转)void指针(void *的用法)
  7. css margin重叠
  8. tomcat配置CATALINA_HOME变量
  9. Redis深入之数据结构
  10. linq---我为你提笔序,你的美不只查询语句
  11. php仿经典省市县三级联动
  12. IDEA zookeeper插件的使用
  13. 【jQuery】(5)---jQuery CSS
  14. 分析java的堆栈信息 内存模型
  15. 《DSP using MATLAB》Problem 5.38
  16. 数据库like匹配的实现猜测
  17. 原生JS实现ajax 发送post请求
  18. forms.ModelForm 与 forms.Form
  19. Mac怎么生成.ssh文件
  20. mysql数据库知识

热门文章

  1. 【Gambit】Gambit使用教程
  2. python的logging的简单使用
  3. mysql 添加记录或者删除记录
  4. webstorm下开发微信小程序
  5. opencv笔记
  6. gym100825G. Tray Bien(轮廓线DP)
  7. CocoaPods 命令和使用
  8. Class加载顺序
  9. Luogu P4299 首都 LCT
  10. 字符与数字的转换:sprintf和sscanf