| 13 | rsubmittable = /^(?:input|select|textarea|keygen)/i; |
| 14 | |
| 15 | function buildParams( prefix, obj, traditional, add ) { |
| 16 | var name; |
| 17 | |
| 18 | if ( jQuery.isArray( obj ) ) { |
| 19 | // Serialize array item. |
| 20 | jQuery.each( obj, function( i, v ) { |
| 21 | if ( traditional || rbracket.test( prefix ) ) { |
| 22 | // Treat each array item as a scalar. |
| 23 | add( prefix, v ); |
| 24 | |
| 25 | } else { |
| 26 | // Item is non-scalar (array or object), encode its numeric index. |
| 27 | buildParams( prefix + "[" + ( typeof v === "object" ? i : "" ) + "]", v, traditional, add ); |
| 28 | } |
| 29 | }); |
| 30 | |
| 31 | } else if ( !traditional && jQuery.type( obj ) === "object" ) { |
| 32 | // Serialize object item. |
| 33 | for ( name in obj ) { |
| 34 | buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); |
| 35 | } |
| 36 | |
| 37 | } else { |
| 38 | // Serialize scalar item. |
| 39 | add( prefix, obj ); |
| 40 | } |
| 41 | } |
| 42 | |
| 43 | // Serialize an array of form elements or a set of |
| 44 | // key/values into a query string |