form 表单使用.serialize()序列化后会出现中文乱码的问题
原因
.serialize()自动调用了encodeURIComponent方法将数据编码了 
解决方法
调用decodeURIComponent(XXX,true);将数据解码 
例如:

var information=$("#inforForm").serialize(),
  informationDe= decodeURIComponent(information,true), //解码
  informationEn= encodeURI(encodeURI(informationDe)); //再次编码

后台

String paramsTrans = new String(params.getBytes("ISO-8859-1"),"UTF-8");
params = java.net.URLDecoder.decode(paramsTrans , "UTF-8");

页面端发出的数据作两次encodeURI,这个做的好处在于,不管浏览器用户在页面来设置编码,服务器所采用的编码来做一次URLencode转换成UTF-8

.serialize()值转化为json格式

.serialize()序列化之后的传值是

  a=1&b=2&c=3

这种样式,实际使用中还是json比较方便

//转化为json
function strToObj(str){
  str = str.replace(/&/g,"','");
  str = str.replace(/=/g,"':'");
  str = "({'"+str +"'})";
  obj = eval(str);
  return obj;
}

ajax取值后自动赋值给span

function inquireInfor(){
  var information=$("#inforForm").serialize(),
    //解码
    informationDe = decodeURIComponent(information,true),
    informationDeJson=strToObj(informationDe),
     inforSpan=$("#inforDiv span");   var len = inforSpan.size();//获取span标签的个数
  var arr = [];
  var result=eval(informationDeJson);
  for(var index = ; index < len-; index++){//创建一个数字数组
    arr[index] = index;
  }
  $.each(arr, function(i){//循环得到不同的id的值
    var idValue = inforSpan.eq(i).attr("id");
    if(idValue != ''){      
      $('span'+'#'+idValue).html(result[idValue]);  //根据ID从传值的json里面取值   
    }   
  });
}

ajax使用serialize()序列化提交的更多相关文章

  1. jquery $('#form1').serialize()序列化提交表单

    1.$("#form1").serialize() 把form表单的值序列化成一个字符串,如username=admin&password=admin123 <for ...

  2. jQuery ajax中使用serialize()方法提交表单数据示例

    <form id="form"> 输入账号 :<input id="name" type="text" name=&quo ...

  3. JQuery中serialize() 序列化

    更多2014/8/24 来源:jquery学习浏览量:1671 学习标签: serialize 本文导读:在jQuery中,当我们使用ajax时,常常需要拼装input数据以键值对(Key/Value ...

  4. Thinkjs使用ajax实现表单提交

    //前端代码 1 $('form').submit(evt=>{ evt.preventDefault();//阻止表单默认提交 $.ajax({ url: '/user/personal/up ...

  5. jQuery ajax中serialize()方法增加其他参数

    表单提交 使用jQuery.ajax()进行表单提交时,需要传递参数,最直接的方法便是使用Form的serializa()将表单序列化,前提只是将Form表单中的name属性与数据库的字段名保持一致便 ...

  6. JSON格式化与serialize序列化

    一.JSON格式化 1. JSON是什么 JSON是一种数据的存储格式,用来沟通客户端Javascript和服务端PHP的交互.我们把用PHP生成JSON后的字符串传给前台Javascript,Jav ...

  7. ajax的表单提交,与传送数据

    ajax的表单提交 $.ajax ({ url: "<%=basePath%>resource/addPortDetectOne.action", dataType: ...

  8. PHP的serialize序列化数据与JSON格式化数据

    serialize序列化 我们在一些老的WEB系统中可能会看到在数据库或在文本文件中存储着一大串貌似有着特殊含义的字符串文本内容.我们仔细看会发现它具有数据类型和结构等信息,但是它并不容易人工阅读,它 ...

  9. serialize 序列化 +号处理

    少说多做,直接运行代码,代码中有注释: <!DOCTYPE html> <html lang="zh"> <head> <meta cha ...

随机推荐

  1. Validating HTTP data with Play

    Validations ensure that the data has certain values or meets specific requirements. You can use vali ...

  2. js 的点击事件

    <button id="btn">click</button> var btn=document.getElementById('btn'); 第一种: b ...

  3. 类似 Dribbble 下载按钮的 SVG 弹性动画进度条

    Codrops 发布了一个如何创建一个基于弹性效果的 SVG 加载进度条教程,基于 SVG 和 TweenMax 实现.按钮开始的时候是一个带有箭头的图标,一旦它被点击,动画成一个有趣的小金属丝和一个 ...

  4. Electron - 创建跨平台的桌面客户的应用程序

    Electron 框架的前身是 Atom Shell,可以让你写使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序.它是基于io.js 和 Chromium 开源项目,并用于在 ...

  5. Ajax关于readyState(状态值)和status(状态码)的研究

    var getXmlHttpRequest = function () { try{ //主流浏览器提供了XMLHttpRequest对象 return new XMLHttpRequest(); } ...

  6. [deviceone开发]-天气demo

    一.简介 该demo主要实现定位功能,读取天气信息,语音播报功能.其中定位需要配置key,调试二维码请到论坛中下载! 二.效果图 三.相关讨论 http://bbs.deviceone.net/for ...

  7. .Net资源总结

    源码文档见官方群(以下为7.4更新内容) 逆天工具 CDN 资源库 国内 Bootstrap中文网开源项目免费 CDN 服务 360网站卫士常用前端公共库CDN服务 百度静态资源公共库 新浪云计算CD ...

  8. linux下发布的执行文件崩溃的问题定位 心得一则

    C++ Release版本发布到客户处执行时,如果程序崩溃,有什么办法能够快速的确认程序的问题呢? 如果能gdb调试的话,比较简单了,可以使用gdb命令,类似如下: gdb ##set args ** ...

  9. iOS 获取设备版本型号

    #import "sys/utsname.h" /** *  设备版本 * *  @return e.g. iPhone 5S */+ (NSString*)deviceVersi ...

  10. Swift-Switch穿透

    switch vegetable {        case "celery":            print("Add some raisins and make ...