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 相关文章推荐
jQuery中filter(),not(),split()使用方法
Jul 06 Javascript
jQuery EasyUI API 中文文档 搜索框
Sep 29 Javascript
JavaScript调用堆栈及setTimeout使用方法深入剖析
Feb 16 Javascript
解决IE6的PNG透明JS插件使用介绍
Apr 17 Javascript
基于JavaScript自定义构造函数的详解说明
Apr 24 Javascript
JQUERY 设置SELECT选中项代码
Feb 07 Javascript
Javascript this 关键字 详解
Oct 22 Javascript
js初始化验证实例详解
Nov 26 Javascript
浅析如何利用angular结合translate为项目实现国际化
Dec 08 Javascript
轻松理解vue的双向数据绑定问题
Oct 30 Javascript
vue自定义指令实现方法详解
Feb 11 Javascript
webpack3.0升级4.0的方法步骤
Apr 02 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函数,php爱好者站推荐
2007/03/19 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
php中OR与|| AND与&amp;&amp;的区别总结
2013/10/26 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
Bootstrap4一次重大更新 几乎涉及每行代码
2016/05/16 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
Node.js和Express简单入门介绍
2017/03/24 Javascript
浅谈react前后端同构渲染
2017/09/20 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
python英语单词测试小程序代码实例
2019/09/09 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
Python实现简单猜数字游戏
2021/02/03 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
AmazeUI 图标的示例代码
2020/08/13 HTML / CSS
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
CLR与IL分别是什么含义
2016/08/23 面试题
商务日语毕业生自荐信范文
2013/11/14 职场文书
大雁塔导游词
2015/02/04 职场文书
入党介绍人考察意见
2015/06/01 职场文书
Python超详细分步解析随机漫步
2022/03/17 Python