JS form 表单收集 数据 formSerialize
做后台系统的时候通常会用到form表单来做数据采集;每次一个字段一个字段的去收集就会很麻烦,网站也有form.js插件可以进行表单收集,并封装成一个对象,通过ajax方法传到后台;现在介绍一种直觉采集form表单的方式:
1.首先写一段公用的js:
//收集表单数据为一个数组
$.request = function (name) {
var search = location.search.slice();
var arr = search.split("&");
for (var i = ; i < arr.length; i++) {
var ar = arr[i].split("=");
if (ar[] == name) {
if (unescape(ar[]) == 'undefined') {
return "";
} else {
return unescape(ar[]);
}
}
}
return "";
}
$.fn.formSerialize = function (formdate) {
var element = $(this);
if (!!formdate) {
for (var key in formdate) {
var $id = element.find('#' + key);
var value = $.trim(formdate[key]).replace(/ /g, '');
var type = $id.attr('type');
if ($id.hasClass("select2-hidden-accessible")) {
type = "select";
}
switch (type) {
case "checkbox":
if (value == "true") {
$id.attr("checked", 'checked');
} else {
$id.removeAttr("checked");
}
break;
case "select":
$id.val(value).trigger("change");
break;
default:
$id.val(value);
break;
}
};
return false;
}
var postdata = {};
element.find('input,select,textarea').each(function (r) {
var $this = $(this);
var id = $this.attr('id');
var type = $this.attr('type');
switch (type) {
case "checkbox":
postdata[id] = $this.is(":checked");
break;
default:
var value = $this.val() == "" ? " " : $this.val();
if (!$.request("keyValue")) {
value = value.replace(/ /g, '');
}
postdata[id] = value;
break;
}
});
if ($('[name=__RequestVerificationToken]').length > ) {
postdata["__RequestVerificationToken"] = $('[name=__RequestVerificationToken]').val();
}
return postdata;
};
2.使用方法
html代码:
<form id='form1id'>
姓名:<input type='text' id='names' name='names'/><br/>
年龄:<input type='text' id='names' name='names'/>
</form> js代码:
var infoModel = JSON.stringify($("#form1id").formSerialize());//得到手机到的表对象
$.ajax({
type: "Post",
url: "/HRSSC/Resume/" + Act,
data: "{infoModel:" + infoModel + "}",//前面的命名和后台接收参数一直
dataType: "json",
contentType: "application/json",
success: function (result) {console.log(result);} 后台代码:
public ActionResult AddEmp(Empinfo infoModel) //命名和前台ajax传的参数一致
{
//具体业务处理
return view();
}
只要把form表单里面的字段和后台类字段对应,收集起来的对象在后台可以直接使用!
JS form 表单收集 数据 formSerialize的更多相关文章
- js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题
js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...
- jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用
一.jQuery Form的其他api 1. formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可 ...
- django做form表单的数据验证
我们之前写的代码都没有对前端input框输入的数据做验证,我们今天来看下,如果做form表单的数据的验证 在views文件做验证 首先用文字描述一下流程 1.在views文件中导入forms模块 2. ...
- thinkPHP5.0使用form表单提交数据和删除文章,不用TP的提示页面,使用弹出提示信息
form表单提交数据和删除文章时,TP的默认信息提示页面的看起来不是很好看,想要实现弹窗提示怎么做呢? 前端:可以使用前端的一个知识--iframe,iframe元素会创建包含另外一个文档的内联框架: ...
- form表单序列化数据之后,追加额外数据
form表单序列化数据之后追加额外数据多使用在js中,下面是追加额外数据的代码: <span style="font-size:18px;">$.param({'inv ...
- springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据
springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据 表单html: <form class="form-horizontal ...
- 关于AJAX与form表单提交数据的格式
一 form表单传输文件的格式: 只有三种: multipart/form-data 一般用于传输文件,图片文件或者其他的. 那么其中我们默认的是application/x-www-form-urle ...
- 关于form表单提交数据后不跳转页面+ajax接收返回值的处理
1.前台的form表单建立,注意action.enctype的内容, 2.通过添加一个隐藏的iframe标签使form的target指向iframe来达到不跳转页面的效果,同时需要在js里获取ifra ...
- js——form表单验证
用js实现一个简易的表单验证 效果: 代码: <html> <head> <title>js校验form表单</title> <meta char ...
随机推荐
- Java多线程--线程交替
要求:借助同步机制,sleep()方法,join()方法,实现动画显示:甲线程:1.3.5.7.9乙线程:2.4.6.8.10丙线程:a.b.c.d.emain()线程输出:线程开始,线程结束 输出结 ...
- PHP第四天 函数引用传值
<?php function f1($p1,&$p2){ $p1++; $p2++; $result= $p1+ $p2; return $result;}$v1=10;$v2=20;$ ...
- Git创建本地分支并关联远程分支(二)
创建本地分支git branch 分支名 例如:git branch dev,这条命令是基于当前分支创建的本地分支,假设当前分支是master(远程分支),则是基于master分支创建的本地分支dev ...
- 使用css设置border从中间向两边的颜色渐进效果
1.效果图,设置目录的右框线渐进效果 2.代码 .rightCont>div:nth-child(1){ width: 370px; height: 100%; border-right: 2p ...
- C# 常用语句
var list = dt.AsEnumerable().Select(t => t.Field<string>("Bed")).ToList();Select( ...
- CodeIgniter-CI之MySQL
首先我们需要进行一下配置,这里需要修改的文件为application目录下的config目录下的database.php文件,我们修改相应的配置项,比如这里是我的配置情况: 通常我们在操作数据库之前, ...
- Linux 系统查看命令
1. linux CPU大小cat /proc/cpuinfo |grep "model name" && cat /proc/cpuinfo |grep &quo ...
- 26.mget批量查询
主要知识点 一.mget批量查询的好处 get查询就是一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的.如果使用mget进行批量查询的话,查询 ...
- 3分钟实现小程序唤起微信支付 Laravel教程
微信支付的接入,如果不使用成熟的开发包,将是巨大的工作量. 依赖 EasyWechat 先在 laravel 项目中依赖 easywechat 这个包 composer require "o ...
- NLTK学习笔记(二):文本、语料资源和WordNet汇总
目录 语料库基本函数表 文本语料库分类 常见语料库及其用法 载入自定义语料库 词典资源 停用词语料库 WordNet面向语义的英语字典 语义相似度 语料库基本函数表 示例 描述 fileids() 语 ...