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代码[翻译]
Feb 12 Javascript
js左右弹性滚动对联广告代码分享
Feb 19 Javascript
Javascript节点关系实例分析
May 15 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
jquery利用拖拽方式在图片上添加热链接
Nov 24 Javascript
原生JS取代一些JQuery方法的简单实现
Sep 20 Javascript
jQuery ajaxForm()的应用
Oct 14 Javascript
jquery.Callbacks的实现详解
Nov 30 Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 Javascript
vue项目中jsonp跨域获取qq音乐首页推荐问题
May 30 Javascript
浅析JavaScript异步代码优化
Mar 18 Javascript
js实现弹框效果
Mar 24 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
用缓存实现静态页面的测试
2006/12/06 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
javascript eval函数深入认识
2009/02/21 Javascript
基于jquery的Repeater实现代码
2010/07/17 Javascript
juqery 学习之三 选择器 层级 基本
2010/11/25 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
浅析Nodejs npm常用命令
2016/06/14 NodeJs
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
vue组件watch属性实例讲解
2017/11/07 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
Python中文件的写入读取以及附加文字方法
2019/01/23 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
如何基于Python实现自动扫雷
2020/01/06 Python
求高于平均分的学生学号及成绩
2016/09/01 面试题
动态密码技术
2012/10/18 面试题
2014年小学植树节活动方案
2014/03/02 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
2014年优秀党员材料
2014/12/18 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python