JQuery中serialize()用法实例分析


Posted in Javascript onFebruary 06, 2015

本文实例讲述了JQuery中serialize()用法。分享给大家供大家参考。具体分析如下:

一、serialize()定义和用法:

serialize()方法通过序列化表单值,创建标准的URL编码文本字符串,它的操作对象是代表表单元素集合的jQuery 对象。你可以选择一个或多个表单元素(比如input或文本框),或者 form 元素本身。序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。
 
语法:

$(selector).serialize()
 
详细说明

1、.serialize() 方法创建以标准 URL 编码表示的文本字符串。它的操作对象是代表表单元素集合的 jQuery 对象。

2、.serialize() 方法可以操作已选取个别表单元素的 jQuery 对象,比如 <input>, <textarea> 以及 <select>。不过,选择 <form> 标签本身进行序列化一般更容易些

3、只会将”成功的控件“序列化为字符串。如果不使用按钮来提交表单,则不对提交按钮的值序列化。如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。
 
4、form里面的name不能够用 Js、jquery里的关键字。
例如:length

<form id="form1">

   <input name="length" type="text" value="pipi" />

   <input name="blog" type="text" value="blue submarine" />

</form>
//使用:$("#form1").serialize();

上面则获取不到值。
 
二、JQuery中serialize()实例
 
1、ajax serialize()

$.ajax({

    type: "POST",

    dataType: "json",

    url:ajaxCallBack,

    data:$('#myForm').serialize(),// 要提交表单的ID

    success: function(msg){

        alert(msg);

    }

});

2、serialize() 序列化表单实例

<script src="jquery-1.7.min。js"></script>

<script>

$(function(){

   $("#submit").click(function(){

     alert($("#myForm").serialize());

   });

});

</script>

<form id="myForm">

昵称 <input type="text" name="username" value="admin" /><br />

密码 <input type="password" name="password" value="admin123" /><br />

<input type="button" id="submit" value="序列化表单" /> 

</form>

点击按钮之后弹出:

username=admin&password=admin123
 
三、serialize是用param方法对serializeArray的一个简单包装
 
1、$.param()

$.param()方法是serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化。
 
param方法的js代码

param: function( a ) {

///    <summary>

///        This method is internal.  Use serialize() instead.

///    </summary>

///    <param name="a" type="Map">A map of key/value pairs to serialize into a string.</param>'

///    <returns type="String" />

///    <private />
var s = [ ];
function add( key, value ){

    s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);

};
// If an array was passed in, assume that it is an array

// of form elements

if ( jQuery.isArray(a) || a.jquery )

    // Serialize the form elements

    jQuery.each( a, function(){

 add( this.name, this.value );

    });
// Otherwise, assume that it's an object of key/value pairs

else

    // Serialize the key/values

    for ( var j in a )

 // If the value is an array then the key names need to be repeated

 if ( jQuery.isArray(a[j]) )

     jQuery.each( a[j], function(){

  add( j, this );

     });

 else

     add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );
// Return the resulting serialization

return s.join("&").replace(/%20/g, "+");

}

例如:

var obj = {a:1,b:2,c:3};

var k = $.param(obj);

alert(k);    //输出a=1&b=2&c=3

 
2、serializeArray
 
serializeArray方法是将一个表单当中的各个字段序列化成一个数组
serializeArray方法的jquery定义
serializeArray: function() {

///    <summary>

///        Serializes all forms and form elements but returns a JSON data structure.

///    </summary>

///    <returns type="String">A JSON data structure representing the serialized items.</returns>
return this.map(function(){

    return this.elements ? jQuery.makeArray(this.elements) : this;

})

.filter(function(){

    return this.name && !this.disabled &&

 (this.checked || /select|textarea/i.test(this.nodeName) ||

     /text|hidden|password|search/i.test(this.type));

})

.map(function(i, elem){

    var val = jQuery(this).val();

    return val == null ? null :

 jQuery.isArray(val) ?

     jQuery.map( val, function(val, i){

  return {name: elem.name, value: val};

     }) :

     {name: elem.name, value: val};

    }).get();

}

serializeArray数据例子:

[ { 

 name : username, 

 value : 中国 

 }, { 

 name : password, 

 value : xxx 

}]

希望本文所述对大家的jQuery程序设计有所帮助。

Javascript 相关文章推荐
js form 验证函数 当前比较流行的错误提示
Jun 23 Javascript
Javascript基础教程之argument 详解
Jan 18 Javascript
jQuery实现的向下图文信息滚动效果
May 03 Javascript
JavaScript学习笔记之检测客户端类型是(引擎、浏览器、平台、操作系统、移动设备)
Dec 03 Javascript
基于javascript实现彩票随机数生成(升级版)
Apr 17 Javascript
Javascript如何判断数据类型和数组类型
Jun 22 Javascript
javascript 动态样式添加的简单实现
Oct 11 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
Feb 12 Javascript
Redux实现组合计数器的示例代码
Jul 04 Javascript
Echarts地图添加引导线效果(labelLine)
Sep 30 Javascript
微信小程序实现多选框功能的实例代码
Jun 24 Javascript
JavaScript数组 几个常用方法总结
Nov 11 Javascript
jQuery中on()方法用法实例详解
Feb 06 #Javascript
JS实现文字向下滚动完整实例
Feb 06 #Javascript
jquery中filter方法用法实例分析
Feb 06 #Javascript
Jquery对select的增、删、改、查操作
Feb 06 #Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 #Javascript
js实现图片从左往右渐变切换效果的方法
Feb 06 #Javascript
js实现多选项切换导航菜单的方法
Feb 06 #Javascript
You might like
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
基于laravel belongsTo使用详解
2019/10/18 PHP
由浅到深了解JavaScript类
2006/09/08 Javascript
Javascript 布尔型分析
2008/12/22 Javascript
jQuery 瀑布流 绝对定位布局(二)(延迟AJAX加载图片)
2012/05/23 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
JavaScript获取图片真实大小代码实例
2014/09/24 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
迅速了解一下ES10中Object.fromEntries的用法使用
2019/03/05 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
Auto.JS实现抖音刷宝等刷视频app,自动点赞,自动滑屏,自动切换视频功能
2020/05/08 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
python控制台显示时钟的示例
2014/02/24 Python
Python中使用item()方法遍历字典的例子
2014/08/26 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
使用k8s部署Django项目的方法步骤
2019/01/14 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
Window10上Tensorflow的安装(CPU和GPU版本)
2020/12/15 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
应届毕业生如何写求职信
2014/02/16 职场文书
2014党员整改措施思想汇报
2014/10/07 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
解除同居协议书
2015/01/29 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
药店营业员岗位职责
2015/04/14 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python