锋利的jQuery-6--序列化函数serialize()和serializeArray()在表单提交中的作用
在通过jQuery ajax提交表单的时候,通常用下边的方法获取表单内容。
var form = 'add-account-form'; //表单id
$('#' + form).submit(function() {
var account = {
'user_id':'',
'partner_name':'',
'site_url': '','product_url':''
};
for(var i in account) {
if (account.hasOwnProperty(i)) { //hasOwnProperty函数判断对象中是否含有某个成员。
if ($('#' + form + ' input[name=' + i + ']').length > 0) account[i] = $('#' + form + ' input[name=' + i + ']').val(); //此处只能用account[i]的形式,不能用account.i
if ($('#' + form + ' select[name=' + i + ']').length > 0) account[i] = $('#' + form + ' select[name=' + i + ']').val();
}
}
$.post('/pc/account', {'data':account, 'op':'add'}, function(data) { }); });
1.serialize()
可以通过jquery的serialize方法,因为$.get, $.post, $.ajax的数据部分可以传映射形式{"name" : "lee", "age" : "18"},也可以传字符串形式name=lee&age=18。
var form = 'add-account-form';
$('#' + form).submit(function() {
var account = $(this).serialize(); //获取表单的所有name值做为key,val做为value的字符串,用&连接。
$.post('/pc/account', {'data':account, 'op':'add'}, function(data) { }); });
注意:
用字符串方式的时候需要注意对字符编码(中文),用serialize()方法会自动编码。
serialize()方法作用于jQuery对象,所以不光表单能用,其他选择器也能用,例如 $(":checkbox, :radio").serialize();
<input type="checkbox" name="check" value="中国人"/> 中国人
<input type="checkbox" name="check" value="美国人" />美国人 /* 如果两个多选框都被选中的话,serialize方法不会合并值,而是生成好几个同名的值 */
$("form").serialize(); //check=%E4%B8%AD%E5%9B%BD%E4%BA%BA&check=%E7%BE%8E%E5%9B%BD%E4%BA%BA //生成check=***&check=***形式,并且中文被编码
2.serializeArray()
该方法不是返回字符串,而是将dom元素序列化后,返回json格式。
var f = $(":checkbox, :radio").serializeArray(); //获得多选框和单选框的值
console.log(f); //在控制台查看
$.each(f, function(i, field){ //f是一个对象,可以通过$.each方法遍历
$("$result").append(field.value + " , ");
})
3.$.param()
他是serialize()方法的核心,用来对数组和对象按照key/value形式序列化。
var obj = {a:1,b:2,c:3}
var s = $.param(obj); //a=1&b=2&c=3
锋利的jQuery-6--序列化函数serialize()和serializeArray()在表单提交中的作用的更多相关文章
- 使用jquery form插件进行异步带文件的表单提交
引入form插件与jquery 的js文件后 获取表单的jq对象 然后.ajaxSubmit提交表单即可 实现添加品牌的异步表单提交 function addBarandImg(formId) { $ ...
- jQuery的序列化元素 serialize()方法 serializeArray()方法 param()方法
当提交的表单元素较多时用serialize()方法,serialize()方法也是作用于一个jQuery的对象,它能够将DOM元素内容序列化为字符串,用于Ajax请求. serialize() 方法通 ...
- jQuery使用serialize(),serializeArray()方法取得表单数据+字符串和对象类型两种表单提交的方法
原始form表单值获取方式(手动): $.ajax({ type: "POST", url: "ajax.php", data: "Name=摘取天上 ...
- jquery表单提交获取数据(带toast dialog)
最近写了一个召集令,传统表单提交注册.写写遇到的费时间的点与解决办法 git项目地址:form-demo(针对于手机版,懒人可以直接使用,有排版和样式) demo使用Jquery,toast使用jqu ...
- 浏览器下载/导出文件 及jQuery表单提交
1 比如以下按钮, 用于导出文件,如EXCEL文件. <li> <button class="whiteBg btn2" onclick="doExp( ...
- jquery插件-表单提交插件-jQuery.Form
1.介绍 JQuery Form插件是一款强大的Ajax表单提交插件,可以简单方便的实现让我们的表单 由传统的提交方式转换成Ajax无刷新提交! 他提供了两个核心的方法ajaxForm以及ajaxSu ...
- jQuery最简单的表单提交方式
第一步:绑定事件 常用的与ajax相关的事件参考如下: 1.$(selector).click(function) 2.$(selector).change(function) 3.$(selecto ...
- jquery.form.js(ajax表单提交)
Form插件地址: 官方网站:http://malsup.com/jQuery/form/ 翻译地址:http://www.aqee.net/docs/jquery.form.plugin/jquer ...
- jQuery Form 表单提交插件-----formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的 应用
一.jQuery Form的其他api 1. formSerialize 将表单序列化成查询串.这个方法将返回一个形如: name1=value1&name2=value2的字符串.是否可 ...
随机推荐
- linux下的zip命令
1.把/home目录下面的mydata目录压缩为mydata.zipzip -r mydata.zip mydata #压缩mydata目录2.把/home目录下面的mydata.zip解压到myda ...
- C语言 二级指针内存模型②
//二级指针第二种内存模型 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #incl ...
- 使用Uploadify实现上传图片生成缩略图例子,实时显示进度条
不了解Uploadify的,先看看前一篇详细说明 http://www.cnblogs.com/XuebinDing/archive/2012/04/26/2470995.html Uploadify ...
- 字符串相似度算法(编辑距离算法 Levenshtein Distance)(转)
在搞验证码识别的时候需要比较字符代码的相似度用到“编辑距离算法”,关于原理和C#实现做个记录. 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个 ...
- GCD工作单元
#import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (weak,nonatomic ...
- Canvas 教程
在本文章中 在你开始之前 教程内容 相关资料 A note to contributors <canvas> 是一种可以通过编写脚本(通常是JavaScript)来实现绘制图形的HTML元 ...
- unity3d 扩展NGUI Tweener —— TweenFillAmount
好久没写博客了,上一篇是在今年上班之前写的 从年初到现在一篇没写过,每天都在加班,实在太忙了 上班半年多了,学到不少东西 今天分享一下刚写的小功能 TweenFillAmount 用过NGUI Twn ...
- 第一章:Javascript语言核心
本节是javascript语言的一个快速预览,也是本书的第一部分快速预览. 读此书之前,感谢淘宝技术团队对此javascript核心的翻译,感谢弗拉纳根写出此书.感谢你们无私的分享,仅以此笔记献给你们 ...
- AngularJs-MVC之路由、模块以及依赖注入
前面呢,我们大概的了解了下AngularJs的入门,也做过了hello world的一个demo,不知道大家有没有掌握呢?在下面我们需要讲一些AngularJS的一些干货. 1,一个完整项目的目录结构 ...
- NABC竞争性需求分析
设计一个五子棋游戏 下面是比较系统的框架-NABC模型 1) N (Need 需求) 现在随着人们的生活越来越好,电脑已经成为每家每户的必备品了,而且很多人工作的地方都也是必备的电脑,而 ...