Jquery表单序列化和json操作
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus®">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
<script src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<body>
<form id="myform">
<table>
<tr>
<td>姓名:</td>
<td> <input type="text" name="name" value="旺旺"/> </td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="sex" value="男" checked> 男
<input type="radio" name="sex" value="女"> 女
</td>
</tr>
<tr>
<td>年龄:</td>
<td>
<select name="age">
<option value="10">10</option>
<option value="20" selected>20</option>
<option value="30">30</option>
</select>
</td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" value="read" name="hobby" checked>读书
<input type="checkbox" value="music" name="hobby" checked>音乐
<input type="checkbox" value="draw" name="hobby" checked>画画
<input type="checkbox" value="sport" name="hobby">运动
</td>
</tr>
<tr>
<td colspan="2">
<input type="button" id="submitBtn" value="提交" />
</td>
</tr>
</table>
</form> <script> /**序列化表单,多个value用数组存放**/
$.fn.serializeObject = function() {
var o = {};
var arr = this.serializeArray();
$.each(arr,function(){
if (o[this.name]) { //返回json中有该属性
if (!o[this.name].push) { //将已存在的属性值改成数组
o[this.name] = [ o[this.name] ];
}
o[this.name].push(this.value || ''); //将值存放到数组中
} else { //返回json中没有有该属性
o[this.name] = this.value || ''; //直接将属性和值放入返回json中
}
});
return o;
} /**序列化表单,多个value用逗号隔开**/
$.fn.serializeObject2 = function() {
var o = {};
var arr = this.serializeArray();
$.each(arr,function(){
if (o[this.name]) { //返回json中有该属性
o[this.name]=o[this.name]+','+(this.value || '');//序列化表单,多个value用逗号隔开
} else { //返回json中没有有该属性
o[this.name] = this.value || ''; //直接将属性和值放入返回json中
}
});
return o;
} /**初始化测试**/
$(function() {
$("#submitBtn").click(function() {
var params = $("#myform").serializeObject(); //将表单序列化为JSON对象
console.info(params);
var params2 = $("#myform").serializeObject2(); //将表单序列化为JSON对象
console.info(params2); });
var json={'a':'a我的#+~','b':'b','c':'c'};
var jsonStr=JSON.stringify(json);//json转字符串
var json2=JSON.parse(jsonStr);//字符串转json
console.info(jsonStr);
console.info('encodeURI:\n'+encodeURI(jsonStr));//转码非url的字符
console.info('encodeURIComponent:\n'+encodeURIComponent(jsonStr));//转码所有的特殊字符
/*encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。*/
console.info(json2);
}) </script>
</body>
</html>
Jquery表单序列化和json操作的更多相关文章
- Jquery表单序列化和AJAX全局事件
Jquery表单序列化 1.必须放在form标签内: 2.控件必须有name属性: 3.控件的value值会提交到服务器: 如: <form id="form1"> & ...
- jQuery实现form表单序列化转换为json对象功能示例
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 扩展JQUERY 表单加载JSON数据
$.fn.extend({ //表单加载json对象数据 setForm : function (jsonValue) { var obj = this; $.each(jsonValue, func ...
- jquery表单序列化
$(function(){ $('#send').click(function(){ $.ajax({ type: "GET", url: "test.json" ...
- jquery将form表单序列化常json
var formData = {};$.each(form.serializeArray(),function(i, item){ formData[item.name] = item.value;} ...
- jquery 表单序列化
1.序列化为URL 编码文本字符串 var serialize = $("form[name=testForm]").serialize(); console.log(serial ...
- 将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对<name&value>格式和JSON格式。
http://zhengxinlong.iteye.com/blog/848712 将任意一个jQuery对象进行表单序列化,免除了提交请求时大量拼写表单数据的烦恼,支持键值对<name& ...
- jquery将表单序列化
在工作中经常要将表单数据通过ajax提交,所以需要将表单序列化为json对象. 已经有大神提供了,以前一直百度,现在决定抄过来收藏一下,方便以后自己用,尊重原创,文章转载自:http://www.cn ...
- jquery扩展方法(表单数据格式化为json对象)
1.jquery扩展方法(表单数据格式化为json对象) <script type="text/javascript"> // 将表单数据序列化为一个json对象,例如 ...
随机推荐
- iOS开发遇到的坑之一: 开发遇见如下错误:Undefined symbols for architecture arm64
博客处女作,写得不好望谅解! “for architecture arm64”就是说没有支持arm64,在Build settings里architecture相关的几项需要配置正确 在最近升级coc ...
- Bzoj 4720 换教室 (期望DP)
刚发现Bzoj有Noip的题目,只会换教室这道题..... Bzoj 题面:Bzoj 4720 Luogu题目:P1850 换教室 大概是期望DPNoip极其友好的一道题目,DP不怎么会的我想到了,大 ...
- NFS基础优化
一.环境 环境接上篇 https://www.cnblogs.com/suffergtf/p/9486250.html 二.参数详解 1.nfsserver端配置参数详解 [root@nfsserve ...
- RN原生的安卓UI组件
https://facebook.github.io/react-native/docs/native-components-android.html 这里有一大堆的原生组件可以用,一些是平台自带的, ...
- DateFormat的format()方法线程不安全的问题分析
最近看到<侦探剧场:堆内存神秘溢出事件>https://my.oschina.net/u/2368090/blog/1628720,于是自己也想测试了解一下DateFormat的多线程安全 ...
- 【php】类型转换
$a = 9; print_r((array) $a) ; 输出: [0=>9] print_r((array) null); 输出: []
- 《嵌入式linux应用程序开发标准教程》笔记——9.多线程编程
线程是轻量级进程,创建线程的开销要比进程小得多,在大型程序中应用广泛. 9.1 线程概述 进程包含自己的代码.数据.堆栈.资源等等,创建和切换的开销比较大: 线程是轻量级的进程,调度的最小单元,同一个 ...
- [转]ARM平台下独占访问指令LDREX和STREX
参考:ARM平台下独占访问指令LDREX和STREX的原理与使用详解 全文转载如下: 为了实现线程间同步,一般都要在执行关键代码段之前加互斥(Mutex)锁,且在执行完关键代码段之后解锁.为了实现所谓 ...
- wp8.1 sdk preview 预览版
http://pan.baidu.com/s/1hqyusja?qq-pf-to=pcqq.c2c#dir/path=%2FWPSDK%208.1%20DevPreview%20Installerwp ...
- 练习题,新建数据库anyun
一.新建数据库,数据库名为anyun mysql> create database anyun; Query OK, 1 row affected (0.00 sec) 二.查看数据库 mysq ...