From: John Resig Date: Sat, 15 Sep 2007 00:23:21 +0000 (+0000) Subject: Fix for bug #1600 - multiple selects were being serialized incorrectly. X-Git-Tag: 1.2.1~12 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6d71a10ed2b751f0e275506b24b82d5f611bfdac;p=jquery.git Fix for bug #1600 - multiple selects were being serialized incorrectly. --- diff --git a/src/ajax.js b/src/ajax.js index db877ab41..b0c7f67b8 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -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}; diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 872ec0889..22caf2ac0 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -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'); });