jQuery的序列化元素 serialize()方法 serializeArray()方法 param()方法

当提交的表单元素较多时用serialize()方法,serialize()方法也是作用于一个jQuery的对象,它能够将DOM元素内容序列化为字符串,用于Ajax请求。

serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。

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

$(‘form‘).submit(function() {
  alert($(this).serialize());
  return false;
});

  输出标准的查询字符串:

a=1&b=2&c=3&d=4&e=5

  注释:只会将”成功的控件“序列化为字符串。如果不使用按钮来提交表单,则不对提交按钮的值序列化。如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。

图中两部分为等价关系

serializeArray()方法

serializeArray()方法类似与serialize()方法,该方法不是返回字符串,而是将DOM元素序列化后,返回JSON格式的字符串。

注意:此方法返回的是 JSON 对象而非 JSON 字符串。需要使用插件或者第三方库进行字符串化操作。

返回的 JSON 对象是由一个对象数组组成的,其中每个对象包含一个或两个名值对 —— name 参数和 value 参数(如果 value 不为空的话)。举例来说:

1 [
2   {name: ‘firstname‘, value: ‘Hello‘},
3   {name: ‘lastname‘, value: ‘World‘},
4   {name: ‘alias‘}, // 值为空
5 ]

.serializeArray() 方法使用了 W3C 关于 successful controls(有效控件) 的标准来检测哪些元素应当包括在内。特别说明,元素不能被禁用(禁用的元素不会被包括在内),并且元素应当有含有 name 属性。提交按钮的值也不会被序列化。文件选择元素的数据也不会被序列化。

该方法可以对已选择单独表单元素的对象进行操作,比如 <input>, <textarea>, 和 <select>。不过,更方便的方法是,直接选择 <form> 标签自身来进行序列化操作。

param()方法

param()方法是serialize()方法的核心,用来对一个数组和对象按照key/value进行序列化

比如将一个普通的对象序列化:

var obj={a:1,b:2,c:3};
var k = $.param(obj);
alert(k);//输出a=1&b=2&c=3
时间: 2024-10-19 18:16:31

jQuery的序列化元素 serialize()方法 serializeArray()方法 param()方法的相关文章

jquery serialize()、serializearray()已经$.param方法

serialize: 序列表表格内容为字符串,用于 Ajax 请求.可以对整个form,也可以只针对某部分. HTML 代码: <p id="results"><b>Results: </b> </p> <form> <select name="single"> <option>Single</option> <option>Single2</optio

JQuery中serialize()、serializeArray()和param()用法举例

在javascript中,serialize()方法也是作用于一个JQuery对象,它能够将DOM元素内容序列化为字符串,serializeArray()方法不是返回字符串,而是将DOM元素序列化后,返回JSON格式的数据. 服务器端的jsp代码: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacte

JQuery中serialize()、serializeArray()和param()的使用方法

1. serialize()方法语法:$(selector).serialize()输出序列化表单的字符串,文件上传控件(例如:<input type="file" name="myfile"/>)类型的表单数据会被自动忽略,也就是说不会出现在序列化字符串中. 比如有下面这样的一个表单,用$("form").serialize()序列化后得到的结果是:a=1&b=2&c=3 <form> <div&g

Jquery ajax 表单.serialize() 和serializeArray()序列化$.param()

.serialize() 方法创建以标准 URL 编码表示的文本字符串.它的操作对象是代表表单元素集合的 jQuery 对象. 表单元素有几种类型: <form> <div><input type="text" name="a" value="1" id="a" /></div> <div><input type="text" name=&q

jQuery源码中的Ajax--serialize()/serializeArray()/param()方法

由于jQueryObject.serialize()方法的核心是$.param()方法,所以先学习$.param()方法. 一.$.param()方法 $.param()方法是用来对一个数组或对象按照key/value进行序列化,以便用于URL查询字符串或AJAX请求.其返回的字符串已经过URL编码处理(采用的字符集为UTF-8). 语法: jQuery.param( obj [, traditional ] ) 参数如下: 参数 描述 obj 需要被序列化的JS对象. traditional

jQuery对html元素的取值与赋值实例详解

jQuery对html元素的取值与赋值实例详解 转载  2015-12-18   作者:欢欢   我要评论 这篇文章主要介绍了jQuery对html元素的取值与赋值,较为详细的分析了jQuery针对常见html元素的获取与赋值技巧,非常简单实用,需要的朋友可以参考下 本文实例讲述了jQuery对html元素的取值与赋值方法.分享给大家供大家参考,具体如下: Jquery给基本控件的取值.赋值 TEXTBOX: ? 1 2 3 4 5 var str = $('#txt').val(); $('#

jQuery_review之使用jQuery的Ajax必须知道的,serialize、param方法以及全局函数

在项目中可能会碰到这样的几个问题: 第一个问题,我们需要实现一个基于ajax的异步程序,我们也相当的熟悉ajax中是可以通过{name:name,address:address}这种方式来进行传递参数的.但是,当任务下达的那一刻,我们发现前端的form表单非常的庞大,庞大的我没有耐心去一个一个的拼字符串. 第二个问题,我们需要将一个充满的checkbox的用户调查表传递给后台,额,难道需要我们写一个过滤器,然后通过each进行遍历,然后拼成这样的一个参数表么?如果你对jQuery的选择器比较了解

jquery字符串序列化方法总结

在jquery中字符串序列化方法包括有param() .serialize() .serializeArray(),在这里对其常用做法进行总结. $.param()方法这是serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化. 常用方法: 1 直接传递一个obj,直接转化成key=value然后用&连接起来了 2 $.param({name:'bill',age:18}); 3 结果:name=bill&age=18 4 这里的{X:Y,A:B}会变成X=

jquery serialize传中文乱码解决方法

jQuery form表单.serialize()序列化后中文乱码问题原因及解决 原因:.serialize()自动调用了encodeURIComponent方法将数据编码了 解决方法:调用decodeURIComponent(XXX,true);将数据解码 例如: var params = jQuery("#formId").serialize(); // http request parameters. params = decodeURIComponent(params,true