序列化表单元素值
撰写时间: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不为空的话)。