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 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件