jQuery序列化表单成对象的简单实现


Posted in Javascript onNovember 29, 2016

在使用easyui的datagrid组件时,在查询时传递的查询参数是对象类型,为了方便,扩展了jquery中的序列化方法,调用该方法,可以将表单的所有数据序列化

$.fn.serializeObject=function(){ 
  var obj=new Object(); 
  $.each(this.serializeArray(),function(index,param){ 
    if(!(param.name in obj)){ 
      obj[param.name]=param.value; 
    } 
  }); 
  return obj; 
};

具体使用:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@include file="/WEB-INF/views/inc/taglibs.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<jsp:include page="/WEB-INF/views/inc/meta.jsp"></jsp:include>

<title>Insert title here</title>
<script type="text/javascript">
/* 将form表单序列化成对象object*/
$.fn.serializeObject=function(){ 
  var obj=new Object(); 
  $.each(this.serializeArray(),function(index,param){ 
    if(!(param.name in obj)){ 
      obj[param.name]=param.value; 
    } 
  }); 
  return obj; 
}; 

$(function() {
	query();
});

function query() {
	var params=$('#queryForm').serializeObject();
	//{username:$('#username').val()}
	$('#dg').datagrid({
		url : '${ctx}/user/loadData.action',
		pagination : true,
		idField : 'id',
		rownumbers : true,
		singleSelect : true,
		queryParams : params,
		pageSize : 10,
		pageNumber:1,
		pageList : [ 10, 20, 30, 40 ],
		sortName : 'age',
		sortOrder : 'asc',
		fitColumns : true,
		columns : [ [ 
		     {field : 'phone',title : '电话',width : 150,align : 'center',sortable : 'true'}, 
				 {field : 'age',title : '年龄',width : 100,align : 'center',sortable : 'true'}, 
				 {field : 'email',title : '邮箱',width : 100,align : 'left',sortable : 'true'}, 
				 {field : 'username',title : '用户名',width : 150,align : 'center',sortable : 'true'}, 
				 {field : 'password',title : '密码',width : 200,align : 'left'}, 
				 {field : '_opt',title : '操作',width : 200,align : 'center',formatter : fmtOperate} 
				 ] ]
	});
}

function fmtOperate(value, row, index) {
	var e='';
	e += '<a href="${ctx}/user/initForm.action?id=' + row.id + '">编辑</a> ';
	e += '<a href="javascript:void(0)" onclick="del(' + row.id + ');">删除</a>';
	return e;
}

/* 删除 */
function del(id) {
	$.messager.confirm("系统提示", "您确定要删除这条记录吗?", function(r) {
		if (r) {
			$.post("${ctx }/user/delete.action", {id : id}, function(result) {
				if (result.isSuccess) {
					$.messager.show({
						title : "系统提示",
						msg : result.msg,
						showType : "show"
					});
					$("#dg").datagrid("reload");
				} else {
					$.messager.show({
						title : "系统提示",
						msg : result.msg,
						showType : 'show'
					});
				}
			}, "json");
		}
	});
}

/*添加*/
function add(){
	window.location.href="${ctx}/user/initForm.action?id=0";
}
</script>
</head>
<body>
<form id="queryForm">
	<label>用户名:</label><input type="text" name="username" id="username"/>
	<input type="button" onclick="query();" value="查询"/>
	<input type="button" onclick="add();" value="添加"/>
</form>
<!-- 表格显示数据 -->
<table id="dg"></table>
</body>
</html>

以上这篇jQuery序列化表单成对象的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript cookie解码函数(兼容ff)
Mar 17 Javascript
javascript重写alert方法的实例代码
Mar 29 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
Apr 26 Javascript
javascript实用方法总结
Feb 06 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
Jun 21 Javascript
Javascript中判断一个值是否为undefined的方法详解
Sep 28 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
Feb 20 Javascript
ES6新特性:使用export和import实现模块化详解
Jul 31 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
Nov 09 Javascript
微信小程序scroll-x失效的完美解决方法
Jul 18 Javascript
vue 框架下自定义滚动条(easyscroll)实现方法
Aug 29 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
Nov 29 #Javascript
JS访问DOM节点方法详解
Nov 29 #Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
Nov 29 #Javascript
浅谈js函数的多种定义方法与区别
Nov 29 #Javascript
原生JS简单实现ajax的方法示例
Nov 29 #Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 #Javascript
使用Vue.js创建一个时间跟踪的单页应用
Nov 28 #Javascript
You might like
php 多个submit提交表单 处理方法
2009/07/07 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
php 团购折扣计算公式
2011/11/24 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
js版本A*寻路算法
2006/12/22 Javascript
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
2015/12/23 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
vue拦截器Vue.http.interceptors.push使用详解
2017/04/22 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
Vue中key的作用示例代码详解
2020/06/10 Javascript
在vue中使用Echarts画曲线图的示例
2020/10/03 Javascript
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
Python模块相关知识点小结
2020/03/09 Python
python中线程和进程有何区别
2020/06/17 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
员工年终演讲稿
2014/01/03 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
一体化教学实施方案
2014/05/10 职场文书
大学生第一学年自我鉴定2015
2014/09/28 职场文书
目标责任书格式范文
2015/05/11 职场文书
少先队中队工作总结
2015/08/14 职场文书
初中美术教学反思
2016/02/17 职场文书
初中历史教学反思
2016/02/19 职场文书
商业计划书之服装
2019/09/09 职场文书
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis