解决jQuery对表单serialize后出现的乱码问题

通过看jQuery源码可以知道,serialize方法是通过encodeURIComponent编码的,所以解决乱码的最笨方法: 

1、重新分解序列化后的值 

2、把分解的值重新decodeURIComponent回来 

3、再重新用escape编码 

4、重新拼接 

function serialize(objs) 

    var parmString = $(objs).serialize(); 

    var parmArray = parmString.split("&"); 

    var parmStringNew=""

    $.each(parmArray,function(index,data){ 

        var li_pos = data.indexOf("=");  

        if(li_pos >0){ 

            var name = data.substring(0,li_pos); 

            var value = escape(decodeURIComponent(data.substr(li_pos+1))); 

            var parm = name+"="+value; 

            parmStringNew = parmStringNew=="" ? parm : parmStringNew + ‘&‘ + parm; 

       

    }); 

    return parmStringNew; 

}

时间: 2024-11-03 01:34:11

解决jQuery对表单serialize后出现的乱码问题的相关文章

锋利的jQuery第5章 jQuery对表单、表格的操作及更过应用

1,button和checkbox的例子: form表单 <form action=""> 你爱的远动有?<br /> <input type="checkbox" name="items" value="足球" />足球 <input type="checkbox" name="items" value="蓝球" />

jquery对表单元素的取值和赋值

/*获得text的值*/ var textval =$("#text_id").attr("value"); //或者 var textval =$("#text_id").val(); /*获取单选按钮的值*/ var valraio =$("input[type=raio]:checked").val(); /*获取一组名为items的radio被选中项的值*/ var item =$('input[name=items]

Jquery表单提交后获取返回Json值

1.给form添加id值: <form action="/News/SaveMessage" method="post" accept-charset="utf-8" class="form" id="frm-reg" name="frm-reg"> 设置所有input标签的name属性值为数据库的字段值,即可以传值到后台 2.给提交按钮添加id值: <input cl

jQuery对表单、表格的操作及更多应用(上:表单应用)

内容摘录自锋利的JQuery一书 一.表单应用 1 获取和失去焦点改变样式(P142) $(function(){$(":input").focus(function(){ //获取焦点触发事件$(this).addClass("focus"); //增加样式}).blur(function(){ //失去焦点触发事件$(this).removeClass("focus"); //移除样式});}) 2 多行文本框触发事件改变文本框高度(P144

第5章 jQuery对表单、表格的操作及更多应用

本章主要是对前面4章的小结和应用. 一. 表单form应用 表单分为3个组成部分 (1)form标签 表单可包含文本域,复选框,单选按钮等等.表单用于向指定的 URL 传递用户数据. (2)表单域 ——文本框.密码框(password),隐藏域,多行文本域(textarea),复选框(checkbox),单选框(radio),下拉框(select)文件上传框 (3)表单按钮 ——提交按钮(submit).复位(reset),一般按钮(button) 1.单行文本框(input type="tex

jQuery对表单的操作

表单的组成部分:表单标签.表单域.表单按钮 <form><fieldset><legend><label><input><textarea> 1.单行文本框--获取和失去焦点改变样式 当文本框获取焦点后,它的颜色有变化:失去焦点后恢复为原来的样式,可使用css中的伪类选择符实现该功能 CSS代码: input:focus,textarea:focus{ border:;background:; } 问题:IE6不支持除了超链接元素外的

jQuery对表单、表格的操作及更多应用(中:表格应用)

内容摘录自锋利的JQuery一书 二.表格应用 1 表格隔行变色(:odd和:even选择器 P157) $(function(){$("tr:odd").addClass("odd"); //奇数行添加样式$("tr:even").addClass("even"); //偶数行添加样式(:odd和:even选择器中索引从0开始)}) 2 设定含有指定文字内容的某一行变色(:contains选择器 P158) $(functi

jQuery对表单元素的取值和赋值操作代码

使用常规的思路:$(“#keyword”).value 取值是取不到的,因为此时$(‘#keydord’)已经不是个element,而是个jquery对象,所以应该使用:$(“#keyword”).val() $("#keyword")[0].value = ""; /*获得TEXT.AREATEXT的值*/ var textval = $("#text_id").attr("value"); //或者 var textval

Jquery 表单提交后3s禁用

<form action="${pageContext.servletContext.contextPath}/XXX/###" method="post" id="messageForm"> 姓名:<input name = "name" type="text" /> <button type="button" id="submit"&