aboutsummaryrefslogtreecommitdiffstats
path: root/src/ajax.js
diff options
context:
space:
mode:
authortemp01 <temp01irc@gmail.com>2010-09-24 16:57:25 -0400
committerjeresig <jeresig@gmail.com>2010-09-24 16:57:25 -0400
commit7862c45ad2f32096383a21b8b301155787724476 (patch)
tree84c6fe597929cb71caffd5e36741975052d27183 /src/ajax.js
parent515efbdc7119aa79de710144effe18413d4cb14a (diff)
downloadjquery-7862c45ad2f32096383a21b8b301155787724476.tar.gz
jquery-7862c45ad2f32096383a21b8b301155787724476.zip
Serialize keys with empty arrays/object values in jQuery.param(). Fixes #6481.
Diffstat (limited to 'src/ajax.js')
-rw-r--r--src/ajax.js13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/ajax.js b/src/ajax.js
index 9886fd70f..a9e13a879 100644
--- a/src/ajax.js
+++ b/src/ajax.js
@@ -542,7 +542,7 @@ jQuery.extend({
});
function buildParams( prefix, obj, traditional, add ) {
- if ( jQuery.isArray(obj) ) {
+ if ( jQuery.isArray(obj) && obj.length ) {
// Serialize array item.
jQuery.each( obj, function( i, v ) {
if ( traditional || rbracket.test( prefix ) ) {
@@ -562,10 +562,15 @@ function buildParams( prefix, obj, traditional, add ) {
});
} else if ( !traditional && obj != null && typeof obj === "object" ) {
+ if ( jQuery.isEmptyObject( obj ) ) {
+ add( prefix, "" );
+
// Serialize object item.
- jQuery.each( obj, function( k, v ) {
- buildParams( prefix + "[" + k + "]", v, traditional, add );
- });
+ } else {
+ jQuery.each( obj, function( k, v ) {
+ buildParams( prefix + "[" + k + "]", v, traditional, add );
+ });
+ }
} else {
// Serialize scalar item.