zhaoxy_sunrain 2011-01-24 21:02 采纳率: 100%
浏览 322
已采纳

Jquery的序列化方法为什么要把空格替换成加号呢?

1.serialize方法:

 

 

 

serialize: function() {
        return jQuery.param(this.serializeArray());
    },

 2.serialize就是对serializeArray方法取的数组进行param操作:

 

 

 

param: function( a ) {
        var s = [ ];

        function add( key, value ){
            s[ s.length ] = encodeURIComponent(key) + '=' + encodeURIComponent(value);
        };

        // If an array was passed in, assume that it is an array
        // of form elements
        if ( jQuery.isArray(a) || a.jquery )
            // Serialize the form elements
            jQuery.each( a, function(){
                add( this.name, this.value );
            });

        // Otherwise, assume that it's an object of key/value pairs
        else
            // Serialize the key/values
            for ( var j in a )
                // If the value is an array then the key names need to be repeated
                if ( jQuery.isArray(a[j]) )
                    jQuery.each( a[j], function(){
                        add( j, this );
                    });
                else
                    add( j, jQuery.isFunction(a[j]) ? a[j]() : a[j] );

        // Return the resulting serialization
        return s.join("&").replace(/%20/g, "+");
    }

 为什么要替换下呢,为什么要替换成加号呢?return s.join("&").replace(/%20/g, "+");

  • 写回答

1条回答 默认 最新

  • rednaxelafx 2011-01-25 12:58
    关注

    那是因为URL规范里就是要求空格在query string里被编码为加号吧。
    [url]http://en.wikipedia.org/wiki/Query_string#URL_encoding[/url]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料