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 相关文章推荐
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
jquery的ajax从纯真网(cz88.net)获取IP地址对应地区名
Dec 02 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
Jan 27 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
Apr 08 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
Jun 03 Javascript
jquery插件ajaxupload实现文件上传操作
Dec 09 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
Nov 27 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
vue.js评论发布信息可插入QQ表情功能
Aug 08 Javascript
详解vue+css3做交互特效的方法
Nov 20 Javascript
Vue extend的基本用法(实例详解)
Dec 09 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常用代码
2006/11/23 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
PHP开发注意事项总结
2015/02/04 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
JavaScript闭包实例讲解
2014/04/22 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
JS创建事件的三种方法(实例代码)
2016/05/12 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
js中less常用的方法小结
2017/08/09 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
Python+django实现文件上传
2016/01/17 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
jupyter notebook 中输出pyecharts图实例
2020/04/23 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
客服实习的个人自我鉴定
2013/10/20 职场文书
行政助理岗位职责
2013/11/10 职场文书
应届生简历中的自我评价
2014/01/13 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
旷工辞退通知书
2015/04/17 职场文书
MySQL 存储过程的优缺点分析
2021/05/20 MySQL
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python