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 相关文章推荐
动态加载iframe
Jun 16 Javascript
接收键盘指令的脚本
Jun 26 Javascript
jQuery监控文本框事件并作相应处理的方法
Apr 16 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
Aug 25 Javascript
jQuery实现仿QQ头像闪烁效果的文字闪动提示代码
Nov 03 Javascript
assert()函数用法总结(推荐)
Jan 25 Javascript
判断横屏竖屏(三种)
Feb 13 Javascript
jQuery Ajax 实现分页 kkpager插件实例代码
Aug 10 jQuery
Vue实现push数组并删除的例子
Nov 01 Javascript
Js和VUE实现跑马灯效果
May 25 Javascript
vue实现自定义多选按钮
Jul 16 Javascript
JavaScript实现下拉列表
Jan 20 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
Terran兵种介绍
2020/03/14 星际争霸
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
微信支付的开发流程详解
2016/09/13 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
jquery 表格分页等操作实现代码(pagedown,pageup)
2010/04/11 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
分享javascript、jquery实用代码段
2016/10/20 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
Python异常处理操作实例详解
2018/05/10 Python
Python生成器generator用法示例
2018/08/10 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
巴西网上药房:onofre
2016/11/21 全球购物
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
标准自荐信范文
2014/01/29 职场文书
《雷雨》教学反思
2014/02/20 职场文书
诚信考试承诺书
2014/03/27 职场文书
党员批评与自我批评材料
2014/10/14 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS