form 表单序列化 serialize
2024-10-01 11:21:49
在开发中有时需要在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"}
最新文章
- 加深一下BlockingQueue的认识
- linux 内核升级
- Computer Network and Internet(1)
- VS2008调试技巧收集备用
- Nodejs in Visual Studio Code 14.IISNode与IIS7.x
- (转)void指针(void *的用法)
- css margin重叠
- tomcat配置CATALINA_HOME变量
- Redis深入之数据结构
- linq---我为你提笔序,你的美不只查询语句
- php仿经典省市县三级联动
- IDEA zookeeper插件的使用
- 【jQuery】(5)---jQuery CSS
- 分析java的堆栈信息 内存模型
- 《DSP using MATLAB》Problem 5.38
- 数据库like匹配的实现猜测
- 原生JS实现ajax 发送post请求
- forms.ModelForm 与 forms.Form
- Mac怎么生成.ssh文件
- mysql数据库知识