Skip to content
Permalink
Browse files

Serialize: jQuery.param: return empty string when given null/undefined

Fixes gh-2633
Close gh-4108
  • Loading branch information...
timmywil committed Jun 20, 2018
1 parent 4f3b8f0 commit 0645099e027cd0e31a828572169a8c25474e2b5c
Showing with 8 additions and 1 deletion.
  1. +4 −0 src/serialize.js
  2. +4 −1 test/unit/serialize.js
@@ -70,6 +70,10 @@ jQuery.param = function( a, traditional ) {
encodeURIComponent( value == null ? "" : value );
};

if ( a == null ) {
return "";
}

// If an array was passed in, assume that it is an array of form elements.
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {

@@ -1,7 +1,7 @@
QUnit.module( "serialize", { teardown: moduleTeardown } );

QUnit.test( "jQuery.param()", function( assert ) {
assert.expect( 23 );
assert.expect( 24 );

var params;

@@ -72,6 +72,9 @@ QUnit.test( "jQuery.param()", function( assert ) {

params = { "test": [ 1, 2, null ] };
assert.equal( jQuery.param( params ), "test%5B%5D=1&test%5B%5D=2&test%5B%5D=", "object with array property with null value" );

params = undefined;
assert.equal( jQuery.param( params ), "", "jQuery.param( undefined ) === empty string" );
} );

QUnit.test( "jQuery.param() not affected by ajaxSettings", function( assert ) {

0 comments on commit 0645099

Please sign in to comment.
You can’t perform that action at this time.