系列文章目录
文章目录
系列文章目录前言一、方法二、jq 涉及方法说明1.serialize() 方法:2.serializeArray() 方法:前言
问题 :如何快速获取form表单内的内容,而不是一个一个的获取。
1、这段时间在工作室遇到一个问题。因为之前一直使用的是一些js 框架所以也没去想这些问题。而这次任务中脱离框架后这个问题就显现出来了。一个一个的获取input的啊select 啊 文本域里的内容实在是太麻烦了索性自己封装个方法,日后用起来也方面。
提示:以下是本篇文章正文内容,下面案例仅供参考
一、方法
为节约时间把方法放在第一条
<form action="javascript::" id='form1' utf-8"><input type="text" name="name1"><input type="text" name="name2"><input type="text" name="name3"><input type="text" name="name4"><input type="text" name="name5"><select name="name6" ><option value=""></option>option</select></form>
/***content:将form标签内的内容转化为键值对,后台好处理。*param:form (form对象。如·$('#form1'))*return: {name1:val1,name2:vla2,name3:val3,......}*/function serializeObject(form){var o = {};form.find(".ui-select").each(function(r){var name=$(this).attr("name");var value=$(this).attr("data-value");o[name]= value;})$.each(form.serializeArray(),function(index){if(o[this['name']]){o[this['name']] = o[this['name']] + ","+this['value'];}else{o[this['name']] = this['value'];}});return o;}
二、jq 涉及方法说明
1.serialize() 方法:
serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。
您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。
序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中,这样在ajax提交表单数据时,就不用一一列举每一个参数,只需将data参数设置为:$(“form”).serialize()即可。
语法如下:
$(selector).serialize();
输出标准的查询字符串:a=1&b=2&c=3&d=4&e=5
注释:只会将“成功的控件”序列化为字符串。(即指没被禁用的元素)如果不使用按钮来提交表单,则不对提交按钮的值序列化。如果要表单元素的值包含到序列字符串中,元素必须使用 name 属性。
2.serializeArray() 方法:
serializeArray() 方法通过序列化表单值来创建对象数组(名称和值)。
您可以选择一个或多个表单元素(比如 input 及/或 textarea),或者 form 元素本身。
代码如下:
//格式:var jsonData = $("form").serializeArray();
注意:此方法返回的是 JSON 对象而非 JSON 字符串。
返回的 JSON 对象是由一个对象数组组成的,其中每个对象包含一个或两个名值对 —— name 参数和 value 参数(如果 value 不为空的话)。举例来说:
[ {name: 'firstname', value: 'Hello'}, {name: 'lastname', value: 'World'},{name: 'alias'}, // 值为空]
特别说明,元素不能被禁用(禁用的元素不会被包括在内),并且元素应当有含有 name 属性。提交按钮的值也不会被序列化。文件选择元素的数据也不会被序列化。
注意:1、不被禁用;2、包含name属性