Skip to content

Commit 783ab70

Browse files
committed
Serialize: handle arrays with null values
1 parent a44cfa0 commit 783ab70

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

src/serialize.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function buildParams( prefix, obj, traditional, add ) {
2525
} else {
2626
// Item is non-scalar (array or object), encode its numeric index.
2727
buildParams(
28-
prefix + "[" + ( typeof v === "object" ? i : "" ) + "]",
28+
prefix + "[" + ( typeof v === "object" && v !== null ? i : "" ) + "]",
2929
v,
3030
traditional,
3131
add

test/unit/serialize.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module("serialize", { teardown: moduleTeardown });
22

33
test("jQuery.param()", function() {
4-
expect(22);
4+
expect(23);
55

66
var params, settings;
77

@@ -77,6 +77,9 @@ test("jQuery.param()", function() {
7777
params = {"test": {"length": 3, "foo": "bar"} };
7878
equal( jQuery.param( params, false ), "test%5Blength%5D=3&test%5Bfoo%5D=bar", "Sub-object with a length property" );
7979

80+
params = {"test": [1,2,null]};
81+
equal(jQuery.param(params, false), "test%5B%5D=1&test%5B%5D=2&test%5B%5D=", "object with array property with null value");
82+
8083
if ( jQuery.ajaxSettings === settings ) {
8184
delete jQuery.ajaxSettings;
8285
} else {

0 commit comments

Comments
 (0)