From 6d71a10ed2b751f0e275506b24b82d5f611bfdac Mon Sep 17 00:00:00 2001 From: John Resig Date: Sat, 15 Sep 2007 00:23:21 +0000 Subject: [PATCH] Fix for bug #1600 - multiple selects were being serialized incorrectly. --- src/ajax.js | 2 +- test/unit/ajax.js | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ajax.js b/src/ajax.js index db877ab..b0c7f67 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 872ec08..22caf2a 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'); }); -- 1.7.10.4