序列化表单元素值

撰写时间:2019年7月7日

我这次讲的是序列化表单元素值中的方法,分别有serialize()方法、serializeArray()方法等等这些序列化表单元素。

我们先看一下html的<div>里面基础的截图1:

序列化表单元素值

                                          图1

我知道使用serialize()方法可以将表单中有name属性的元素值进行序列化,生成标准URL编码文本字符串,直接可用于ajax请求,它的调用格式是:$(selector).serialize()。

接下来我们再看一张截图2:

序列化表单元素值

                                                                                      图2

我们也看到了截图2,注释说是解码的和这里返回的类型为字符串类型,而我是在这基础上是要序列化,我也知道一点,也要注意的一点是:序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了。

我的解决办法是截图2所说的解码,也就是调用decodeURIComponent(str,true);将数据解码。

接下来说到serializeArray()方法。我也就简单的说一下,因为如果要用的话,也就是上面所讲到的serialize()方法,一般情况下,我们也只用这个serialize()方法。而serializeArray()方法比较少用。

而serializeArray()方法的序列化表格元素 (类似 '.serialize()' 方法) 返回 JSON 数据结构数据。注意:此方法返回的是JSON对象而非JSON字符串。需要使用插件或者第三方库进行字符串化操作。

请看下面这张截图3:

序列化表单元素值

                                  图3

我们也看到了图3,我最要说的是:返回的JSON对象是由一个对象数组组成的,其中每个对象包含一个或两个名值对——name参数和value参数(如果value不为空的话)。