jquery中serialize方法对空格的处理

jquery中serialize方法对空格的处理

jquery的 serialize()方法,可以对表单项进行序列化,这本来是很方便的一个功能;但是实际使用中有时会出现如下问题:

例如

<input name="content" value="ddd 567"/>

在执行 serialize()方法后,得到的却是  ddd+567这样的字符串;即jquery的序列化方法对空格进行了转义,转换成了 + 号。

解决方法

由于serialize()方法对真正的“+”号转义的是 %2B,所以可以对serialize()后的结果进行符号替换。

例如

  •  
  • 
    <input name="content" value="ddd + 567 + 987"/>
    
    <script>
    
    var a= $('$frm1').serialize(); //序列化,默认会调用encodeURIComponent()进行编码
    alert(a); // content=ddd+++567+++987
    var b = a.replace(/\\+/g," ");   // g表示对整个字符串中符合条件的都进行替换
    b =  decodeURIComponent(b);  //对serialize后的内容进行解码
    alert(b); // content=ddd + 567 + 987
    
    </script>
    		
  • 标签: