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 基于原型的对象(创建、调用)
Oct 16 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
Sep 20 Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 Javascript
JS图片根据鼠标滚动延时加载的实例代码
Jul 13 Javascript
用js设置下拉框为只读的小技巧
Apr 10 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
Jan 20 Javascript
AngularJS实现页面定时刷新
Mar 14 Javascript
angularjs定时任务的设置与清除示例
Jun 02 Javascript
详解Bootstrap 学习(一)入门
Apr 12 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
Jun 24 Javascript
如何使用jQuery操作Cookies方法解析
Sep 08 jQuery
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无限极分类递归排序实现方法
2014/11/11 PHP
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
javascript模拟命名空间
2015/04/17 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
2016/05/31 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
浅谈JS中的常用选择器及属性、方法的调用
2017/07/28 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python分支结构(switch)操作简介
2018/01/17 Python
浅析Python四种数据类型
2018/09/26 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
python利用7z批量解压rar的实现
2019/08/07 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
荷兰最大的儿童服装店:The Kids Republic
2019/04/13 全球购物
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
合作意向书
2014/07/30 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
解决golang post文件时Content-Type出现的问题
2021/05/02 Golang