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定时器详解及实例
Aug 01 Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
Dec 04 Javascript
jQuery基础知识点总结(必看)
May 31 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
Dec 08 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
Feb 21 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
Mar 29 Javascript
详解nvm管理多版本node踩坑
Jul 26 Javascript
js实现文章目录索引导航(table of content)
May 10 Javascript
JavaScript setTimeout()基本用法有哪些
Nov 04 Javascript
JavaScript实现显示和隐藏图片
Apr 29 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 不同编码下的字符串长度区分
2009/09/26 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
php rmdir使用递归函数删除非空目录实例详解
2016/10/20 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
Python创建模块及模块导入的方法
2015/05/27 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
大学生毕业自荐信
2013/10/10 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
函授自我鉴定范文
2014/02/06 职场文书
人事部岗位职责范本
2014/03/05 职场文书
教代会闭幕词
2015/01/28 职场文书
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python
HTML静态页面获取url参数和UserAgent的实现
2022/08/05 HTML / CSS