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 相关文章推荐
Mootools 1.2教程 输入过滤第一部分(数字)
Sep 15 Javascript
SlideView 图片滑动(扩展/收缩)展示效果
Aug 01 Javascript
javascript 二进制运算技巧解析
Nov 27 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
Mar 02 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
jQuery mobile 移动web(6)
Dec 20 Javascript
你有必要知道的25个JavaScript面试题
Dec 29 Javascript
基于javascript实现右下角浮动广告效果
Jan 08 Javascript
JavaScript事件学习小结(五)js中事件类型之鼠标事件
Jun 09 Javascript
使用BootStrap进行轮播图的制作
Jan 06 Javascript
Angular中ng-bind和ng-model的区别实例详解
Apr 10 Javascript
JS库之wow.js使用方法
Sep 14 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中的登陆login
2007/01/18 PHP
深入php list()函数的详解
2013/06/05 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
深入理解Node.js的HTTP模块
2016/10/12 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
React中的render何时执行过程
2018/04/13 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
2020/11/11 Javascript
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
python中的lambda表达式用法详解
2016/06/22 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
浅谈python3.6的tkinter运行问题
2019/02/22 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
python实现名片管理器的示例代码
2019/12/17 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
2020/03/05 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
使用CSS3代码绘制可爱的Hello Kitty猫
2016/08/03 HTML / CSS
社团文化节策划书
2014/02/01 职场文书
大学生素质拓展活动方案
2014/02/11 职场文书
家具促销活动方案
2014/02/16 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
2016春季幼儿园小班开学寄语
2015/12/03 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
Golang数据类型和相互转换
2022/04/12 Golang