Skip to content

Commit

Permalink
Fixes #7945. Make jQuery.param() serialize plain objects with a prope…
Browse files Browse the repository at this point in the history
…rty named jquery correctly.
  • Loading branch information
valueof authored and jitter committed Feb 1, 2011
1 parent fa4c909 commit fdd4101
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/ajax.js
Original file line number Diff line number Diff line change
Expand Up @@ -698,7 +698,7 @@ jQuery.extend({
}

// If an array was passed in, assume that it is an array of form elements.
if ( jQuery.isArray( a ) || a.jquery ) {
if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
// Serialize the form elements
jQuery.each( a, function() {
add( this.name, this.value );
Expand Down
7 changes: 6 additions & 1 deletion test/unit/ajax.js
Original file line number Diff line number Diff line change
Expand Up @@ -930,7 +930,7 @@ test("serialize()", function() {
});

test("jQuery.param()", function() {
expect(23);
expect(25);

equals( !jQuery.ajaxSettings.traditional, true, "traditional flag, falsy by default" );

Expand Down Expand Up @@ -965,6 +965,11 @@ test("jQuery.param()", function() {
equals( jQuery.param({"foo": {"bar": [], foo: 1} }), "foo%5Bbar%5D=&foo%5Bfoo%5D=1", "Empty array param" );
equals( jQuery.param({"foo": {"bar": {}} }), "foo%5Bbar%5D=", "Empty object param" );

// #7945
equals( jQuery.param({"jquery": "1.4.2"}), "jquery=1.4.2", "Check that object with a jQuery property get serialized correctly" );

equals( jQuery.param(jQuery("#form :input")), "action=Test&text2=Test&radio1=on&radio2=on&check=on&=on&hidden=&foo%5Bbar%5D=&name=name&search=search&button=&=foobar&select1=&select2=3&select3=1&select4=1&select5=3", "Make sure jQuery objects are properly serialized");

jQuery.ajaxSetup({ traditional: true });

var params = {foo:"bar", baz:42, quux:"All your base are belong to us"};
Expand Down

0 comments on commit fdd4101

Please sign in to comment.