Fix for bug #1600 - multiple selects were being serialized incorrectly.
authorJohn Resig <jeresig@gmail.com>
Sat, 15 Sep 2007 00:23:21 +0000 (00:23 +0000)
committerJohn Resig <jeresig@gmail.com>
Sat, 15 Sep 2007 00:23:21 +0000 (00:23 +0000)
src/ajax.js
test/unit/ajax.js

index db877ab..b0c7f67 100644 (file)
@@ -78,7 +78,7 @@ jQuery.fn.extend({
                        var val = jQuery(this).val();
                        return val == null ? null :
                                val.constructor == Array ?
-                                       jQuery.map( val, function(i, val){
+                                       jQuery.map( val, function(val, i){
                                                return {name: elem.name, value: val};
                                        }) :
                                        {name: elem.name, value: val};
index 872ec08..22caf2a 100644 (file)
@@ -166,11 +166,11 @@ test("serialize()", function() {
        expect(6);
        
        equals( $('#form').serialize(),
-               "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=0&select3=1",
+               "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=1&select3=2",
                'Check form serialization as query string');
                
        equals( $('#form :input').serialize(),
-               "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=0&select3=1",
+               "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=1&select3=2",
                'Check input serialization as query string');
        
        equals( $('#testForm').serialize(), 
@@ -182,11 +182,11 @@ test("serialize()", function() {
                'Check input serialization as query string');
                
        equals( $('#form, #testForm').serialize(),
-               "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=0&select3=1&T3=%3F%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=",
+               "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=1&select3=2&T3=%3F%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=",
                'Multiple form serialization as query string');
                
        equals( $('#form, #testForm :input').serialize(),
-               "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=0&select3=1&T3=%3F%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=",
+               "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=1&select3=2&T3=%3F%0AZ&H1=x&H2=&PWD=&T1=&T2=YES&My+Name=me&S1=abc&S3=YES&S4=",
                'Mixed form/input serialization as query string');
 });