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 相关文章推荐
使用mouse事件实现简单的鼠标经过特效
Jan 30 Javascript
javascript封装简单实现方法
Aug 11 Javascript
详解vue.js的devtools安装
May 26 Javascript
详解vue跨组件通信的几种方法
Jun 15 Javascript
基于 Vue 的树形选择组件的示例代码
Aug 18 Javascript
简述Angular 5 快速入门
Nov 04 Javascript
浅谈webpack编译vue项目生成的代码探索
Dec 11 Javascript
React中常见的动画实现的几种方式
Jan 10 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
Aug 24 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
解决layui的input独占一行的问题
Sep 10 Javascript
浅谈vue项目用到的mock数据接口的两种方式
Oct 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中实现Javascript的escape()函数代码
2010/08/08 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
php常用的工具开发整理
2019/09/26 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
js防止表单重复提交实现代码
2012/09/05 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
vue-cli项目修改文件热重载失效的解决方法
2018/09/19 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
[06:23]2014DOTA2西雅图国际邀请赛 小组赛7月12日TOPPLAY
2014/07/12 DOTA
python模块restful使用方法实例
2013/12/10 Python
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
Python中PyQt5/PySide2的按钮控件使用实例
2019/08/17 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
个人对照检查材料
2014/02/12 职场文书
先进集体获奖感言
2014/02/13 职场文书
小学生母亲节演讲稿
2014/05/07 职场文书
驻村工作先进事迹
2014/08/14 职场文书
uniapp引入支付宝原生扫码插件步骤详解
2022/07/23 Javascript