| 8921 | rsubmittable = /^(?:input|select|textarea|keygen)/i; |
| 8922 | |
| 8923 | function buildParams(prefix, obj, traditional, add) { |
| 8924 | var name; |
| 8925 | |
| 8926 | if (Array.isArray(obj)) { |
| 8927 | // Serialize array item. |
| 8928 | jQuery.each(obj, function (i, v) { |
| 8929 | if (traditional || rbracket.test(prefix)) { |
| 8930 | // Treat each array item as a scalar. |
| 8931 | add(prefix, v); |
| 8932 | } else { |
| 8933 | // Item is non-scalar (array or object), encode its numeric index. |
| 8934 | buildParams( |
| 8935 | prefix + '[' + (typeof v === 'object' && v != null ? i : '') + ']', |
| 8936 | v, |
| 8937 | traditional, |
| 8938 | add |
| 8939 | ); |
| 8940 | } |
| 8941 | }); |
| 8942 | } else if (!traditional && toType(obj) === 'object') { |
| 8943 | // Serialize object item. |
| 8944 | for (name in obj) { |
| 8945 | buildParams(prefix + '[' + name + ']', obj[name], traditional, add); |
| 8946 | } |
| 8947 | } else { |
| 8948 | // Serialize scalar item. |
| 8949 | add(prefix, obj); |
| 8950 | } |
| 8951 | } |
| 8952 | |
| 8953 | // Serialize an array of form elements or a set of |
| 8954 | // key/values into a query string |