Skip to content
Permalink
Browse files

Fixes #7945. Make jQuery.param() serialize plain objects with a prope…

…rty named jquery correctly.
  • Loading branch information...
valueof authored and jitter committed Feb 1, 2011
1 parent fa4c909 commit fdd4101fe93321f33b916a92b5def1328ea331b3
Showing with 7 additions and 2 deletions.
  1. +1 −1 src/ajax.js
  2. +6 −1 test/unit/ajax.js
@@ -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 );
@@ -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" );

@@ -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"};

0 comments on commit fdd4101

Please sign in to comment.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.