jQuery.serializer()序列化
serialize()函数用于序列化一组表单元素,将表单内容编码为用于提交的字符串。
-
serialize()函数常用于将表单内容序列化,以便用于AJAX提交。
该函数主要根据用于提交的有效表单控件的name和value,将它们拼接为一个可直接用于表单提交的文本字符串,该字符串已经过标准的URL编码处理(字符集编码为UTF-8)。
无效的表单控件不会被提交,包括:
-
不在<form>标签内的表单控件不会被提交
-
没有name属性的表单控件不会被提交
-
带有disabled属性的表单控件不会被提交
-
没有被选中的表单控件不会被提交
语法
jQueryObject.serialize()
serialize()函数的返回值为String类型,返回将表单元素编码后的可用于表单提交的文本字符串。
html初始代码
-
序列化form表单中的所有元素
alert( $("form").serialize());// 序列化结果: uid=1&username=%E5%BC%A0%E4%B8%89&password=123456&grade=3&sex=1&hobby=1&hobby=2
-
序列化部分表单元素
alert( $(":text, select, :checkbox").serialize());// 序列化后的结果:username=%E5%BC%A0%E4%B8%89&password=123456&grade=3&hobby=1&hobby=2
使用实例
html文件
Title
views.py
def serialize(request): # form = request.POST # print(form) name = request.POST.get("username") password = request.POST.get("password") checked = request.POST.getlist("hobby") print(name,password,checked) return HttpResponse(json.dumps(name))
当有好多input的时候,就得一一对应的吧所有的数据发过去的,这样显得麻烦,我们用序列化。
// 前端data:$("form").serialize(), //序列form表单所有的data:$(":text,:password,:checkbox").serialize(), //序列自己选择的
在服务端获取数据
form = request.POST print(form) #获取所有name = request.POST.get("username")password = request.POST.get("password")checked = request.POST.getlist("hobby")print(name,password,checked)#获取单个