*)表单serialize()序列化,和serializeArray()
##)应用场景
当Ajax或者get请求发送表单中的某一个,或者某几个值到后台时,通过jQuery就能获取到这些值。然后作为Ajax的参数(或者get请求的 ? 后的参数)发送到后台。
但是,当需要发送整个表单的数据到后台时,表单如果小还好说,表单如果大,有很多的值,那一个一个获取就比较麻烦了。
这个时候,就需要使用$("form").serialize();
在w3school中可以看到相关资料:
##)用法:
可以选择一个表单、或者一类表单元素,或者整个form,进行.serialize() 或serializeArray()操作。
.serialize() .serializeArray()操作只将有name属性的表单元素生成
###).serialize() 返回URL编码文本字符串
生成的结果如下:a=1&b=2&c=3&d=4&e=5 即:name值1=对应value值1&name值2=对应value值2
这个结果可以直接追加到get请求路径的后面。
###).serializeArray()返回JSON对象(是JSON对象,而不是JSON字符串,需要使用插件或者第三方库进行字符串化操作。)
生成的结果如下:
[ {name: 'firstname', value: 'Hello'}, //name:是表单name value是:表单的值 {name: 'lastname', value: 'World'}, {name: 'alias'}, // 值为空]
这个结果可以作为Ajax的参数传递到后台。
*)JSON.stringify()
JSON.stringify() 是JavaScript提供的处理JSON对象的内置函数。参考w3school文档:
作用:把JavaScript对象转换成JSON的字符串形式。
把
var obj = { name:"Bill Gates", age:62, city:"Seattle"}; //js对象
var arr = [ "Bill Gates", "Steve Jobs", "Elon Musk" ]; //js数组
var obj = { "name":"Bill Gates", "today":new Date(), "city":"Seattle"}; //js对象含日期,日期也会转换成对应的字符串形式