js中serialize() 序列化表单时自动url编码

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>serialise</title>
     <script src="jquery.js" type="text/javascript"></script>
</head>
<body>
    <form id="formId" action="">
        <input type="text" name="a" value="安安" />
        <input type="hidden" name="b" value="abc">

    </form>
    <script type="text/javascript">
        $(function(){
            var formStr=$(‘#formId‘).serialize();
            //序列化中文时之所以乱码是因为.serialize()调用了encodeURLComponent方法将数据编码了
            //原因:.serialize()自动调用了encodeURIComponent方法将数据编码了
            //解决方法:调用decodeURIComponent(XXX,true);将数据解码
            params = decodeURIComponent(formStr,true); //关键点
            alert(formStr+‘\n‘+params);
            $.ajax({
                ‘type‘:‘post‘,
                ‘url‘:‘c.php‘,
                ‘data‘:formStr,
                success:function(msg){
                    alert(msg);
                }
            })
        })
    </script>
</body>
</html>

<?php
 $strA=$_POST[‘a‘];
 $strB=$_POST[‘b‘];
 echo $strA."____".$strB;

原文地址:https://www.cnblogs.com/CodingAndRiding/p/8129888.html

时间: 2024-08-06 14:28:04

js中serialize() 序列化表单时自动url编码的相关文章

jQuery序列化表单时将制定元素排除在外

jQuery序列化表单时将制定元素排除在外:大家知道使用serialize()函数可以序列化一个表单,但是可能在实际应用中,需要将制定的表单元素排除在外,下面就通过实例代码演示一下如何实现此效果,代码实例如下: $("form[name='theform']").not($("input[type='hidden']")).not($("input[class='txt']")).serialize(); 上面代码只是一个演示,实际应用中要根据自

【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据

注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内容. 5.2 Sending HTML Form Data 5.2 发送HTML表单数据 本文引自:http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1 By Mike Wasson|June 15, 2012 作者:Mike Wasson | 日期:2012-6-15 Part

JS中如何防止表单重复提交问题

在登录页面html中写如下代码 <script type="text/javascript"> var issubmit=false; function dosubmit(){ if(issubmit==false){ issubmit=true; return true; }else{ return false; } } </script> </head> <body> <form action="/Day07/Form

JQuery中serialize() 序列化

更多2014/8/24 来源:jquery学习浏览量:1671 学习标签: serialize 本文导读:在jQuery中,当我们使用ajax时,常常需要拼装input数据以键值对(Key/Value)的形式发送到服务器,用JQuery的serialize方法可以轻松的完成这个工作,使用这个方法可以将表单序列化为键值对(key1=value1&key2=value2…)后提交.下面介绍JQuery中serialize()的用法 一.serialize()定义和用法: serialize()方法通

jquery通过submit()和serialize()提交表单

<script type="text/javascript"> $(function() { $('#form1').submit(function() { //当提交表单时,会发生 submit 事件. //此处可做表单验证 //... ... var postData = $("#form1").serialize();//序列化表单,后台可正常通过post方法获取数据 $.ajax({ type: "POST", url: &q

ajax序列化表单,再也不用通过data去一个个的传值了

jQuery的serialize()方法通过序列化表单值,创建URL编码文本字符串,我们就可以选择一个或多个表单元素,也可以直接选择form将其序列化 这样,我们就可以把序列化的值传给ajax()作为url的参数,轻松使用ajax()提交form表单了,而不需要一个一个获取表单中的值然后传给ajax(), 举例如下:

jQuery序列化表单 serialize() serializeArray()

1.serialize()方法 描述:序列化表单内容为字符串,用于Ajax请求. 格式:var data = $("form").serialize(); 2.serializeArray()方法 描述:序列化表单元素(类似'.serialize()'方法)返回JSON数据结构数据. 注意,此方法返回的是JSON对象而非JSON字符串.需要使用插件或者<a>第三方库</a>进行字符串化操作. 格式:var jsonData = $("form"

利用JS实现表单的自动提交

今天需要将一个chat整合到客户的网站上去,实现网站的注册用户登录本网站之后点击某个链接能够直接登录到chat上去.我保留了chat原有的登录界面,采用JS技术当页面跳转过来的时候自动填充表单,并自动提交表单,从而实现网站用户无需再次登录即可进入chat.具体代码实现如下 JS代码 <script> //取得cookie值 function getCookie(name){ var arr,reg=new RegExp("(^| )"+name+"=([^;]*)

jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因

jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因 今天利用了jquery.validate.js来验证表单,发现在火狐.谷歌浏览器当中都可以进行验证,但是在IE系列浏览器当中却无法进行验证就直接将表单提交了. 在网上查了一下原因,大多数文章表明原因是js代码书写不规范造成,也就是在验证表单的规则(rules)数组的最后多了个逗号.起初我也因为是这个原因于是查看了自己的代码发现确实有此问题于是就改正过来了. 但是在浏览器中查看后仍然不起作用,在百思不得其解时,想到