Вход Регистрация
Файл: wapxl.ru/bower_components/jquery/src/serialize.js
Строк: 120
<?php
define
([
    
"./core",
    
"./manipulation/var/rcheckableType",
    
"./core/init",
    
"./traversing", // filter
    
"./attributes/prop"
], function( jQuery, rcheckableType ) {

var 
r20 = /%20/g,
    
rbracket = /[]$/,
    
rCRLF = /r?n/g,
    
rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
    
rsubmittable = /^(?:input|select|textarea|keygen)/i;

function 
buildParams( prefix, obj, traditional, add ) {
    var 
name;

    if ( 
jQuery.isArray( obj ) ) {
        
// Serialize array item.
        
jQuery.each( obj, function( i, v ) {
            if ( 
traditional || rbracket.test( prefix ) ) {
                
// Treat each array item as a scalar.
                
add( prefix, v );

            } else {
                
// Item is non-scalar (array or object), encode its numeric index.
                
buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add );
            }
        });

    } else if ( !
traditional && jQuery.type( obj ) === "object" ) {
        
// Serialize object item.
        
for ( name in obj ) {
            
buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
        }

    } else {
        
// Serialize scalar item.
        
add( prefix, obj );
    }
}

// Serialize an array of form elements or a set of
// key/values into a query string
jQuery.param = function( a, traditional ) {
    var 
prefix,
        
s = [],
        
add = function( key, value ) {
            
// If value is a function, invoke it and return its value
            
value = jQuery.isFunction( value ) ? value() : ( value == null ? "" : value );
            
s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
        };

    
// Set traditional to true for jQuery <= 1.3.2 behavior.
    
if ( traditional === undefined ) {
        
traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional;
    }

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

    } else {
        
// If traditional, encode the "old" way (the way 1.3.2 or older
        // did it), otherwise encode params recursively.
        
for ( prefix in a ) {
            
buildParams( prefix, a[ prefix ], traditional, add );
        }
    }

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

jQuery.fn.extend({
    
serialize: function() {
        return 
jQuery.param( this.serializeArray() );
    },
    
serializeArray: function() {
        return 
this.map(function() {
            
// Can add propHook for "elements" to filter or add form elements
            
var elements = jQuery.prop( this, "elements" );
            return 
elements ? jQuery.makeArray( elements ) : this;
        })
        .
filter(function() {
            var 
type = this.type;

            
// Use .is( ":disabled" ) so that fieldset[disabled] works
            
return this.name && !jQuery( this ).is( ":disabled" ) &&
                
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
                ( 
this.checked || !rcheckableType.test( type ) );
        })
        .
map(function( i, elem ) {
            var 
val = jQuery( this ).val();

            return 
val == null ?
                
null :
                
jQuery.isArray( val ) ?
                    
jQuery.map( val, function( val ) {
                        return { 
name: elem.name, value: val.replace( rCRLF, "rn" ) };
                    }) :
                    { 
name: elem.name, value: val.replace( rCRLF, "rn" ) };
        }).
get();
    }
});

return 
jQuery;
});
?>
Онлайн: 2
Реклама