From: John Resig Date: Wed, 18 Feb 2009 19:43:14 +0000 (+0000) Subject: Made it so that search input elements are now serialized. Fixes bug #4107. X-Git-Url: http://git.asbjorn.it/?p=jquery.git;a=commitdiff_plain;h=ca79d866fe07302f03df2b3db09c886c6abef9ff Made it so that search input elements are now serialized. Fixes bug #4107. --- diff --git a/src/ajax.js b/src/ajax.js index 91043de..0f5f805 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -71,7 +71,7 @@ jQuery.fn.extend({ .filter(function(){ return this.name && !this.disabled && (this.checked || /select|textarea/i.test(this.nodeName) || - /text|hidden|password/i.test(this.type)); + /text|hidden|password|search/i.test(this.type)); }) .map(function(i, elem){ var val = jQuery(this).val(); diff --git a/test/index.html b/test/index.html index ffc76af..4c47d92 100644 --- a/test/index.html +++ b/test/index.html @@ -68,6 +68,7 @@ + diff --git a/test/unit/ajax.js b/test/unit/ajax.js index a334f0d..0d2f071 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -186,11 +186,11 @@ test("serialize()", function() { expect(6); equals( jQuery('#form').serialize(), - "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=1&select3=2", + "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&select1=&select2=3&select3=1&select3=2", 'Check form serialization as query string'); equals( jQuery('#form :input').serialize(), - "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&select1=&select2=3&select3=1&select3=2", + "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&select1=&select2=3&select3=1&select3=2", 'Check input serialization as query string'); equals( jQuery('#testForm').serialize(), @@ -202,11 +202,11 @@ test("serialize()", function() { 'Check input serialization as query string'); equals( jQuery('#form, #testForm').serialize(), - "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=", + "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&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( jQuery('#form, #testForm :input').serialize(), - "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=", + "action=Test&radio2=on&check=on&hidden=&foo%5Bbar%5D=&name=name&search=search&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'); }); diff --git a/test/unit/selector.js b/test/unit/selector.js index 425ad8c..148151d 100644 --- a/test/unit/selector.js +++ b/test/unit/selector.js @@ -316,7 +316,7 @@ test("pseudo (:) selectors", function() { t( "Last Child", "p:last-child", ["sap"] ); t( "Only Child", "a:only-child", ["simon1","anchor1","yahoo","anchor2","liveLink1","liveLink2"] ); t( "Empty", "ul:empty", ["firstUL"] ); - t( "Enabled UI Element", "#form input:not([type=hidden]):enabled", ["text1","radio1","radio2","check1","check2","hidden2","name"] ); + t( "Enabled UI Element", "#form input:not([type=hidden]):enabled", ["text1","radio1","radio2","check1","check2","hidden2","name","search"] ); t( "Disabled UI Element", "#form input:disabled", ["text2"] ); t( "Checked UI Element", "#form input:checked", ["radio2","check1"] ); t( "Selected Option Element", "#form option:selected", ["option1a","option2d","option3b","option3c"] ); @@ -359,7 +359,7 @@ test("pseudo (:) selectors", function() { t( "Is A Parent", "p:parent", ["firstp","ap","sndp","en","sap","first"] ); t( "Is Visible", "#form input:visible", [] ); t( "Is Visible", "div:visible:not(.testrunner-toolbar):lt(2)", ["nothiddendiv", "nothiddendivchild"] ); - t( "Is Hidden", "#form input:hidden", ["text1","text2","radio1","radio2","check1","check2","hidden1","hidden2","name"] ); + t( "Is Hidden", "#form input:hidden", ["text1","text2","radio1","radio2","check1","check2","hidden1","hidden2","name","search"] ); t( "Is Hidden", "#main:hidden", ["main"] ); t( "Is Hidden", "#dl:hidden", ["dl"] ); @@ -382,7 +382,7 @@ test("pseudo (:) selectors", function() { t( "Check element position", "#dl div:first > div:first", ["foo"] ); t( "Check element position", "div#nothiddendiv:first > div:first", ["nothiddendivchild"] ); - t( "Form element :input", "#form :input", ["text1", "text2", "radio1", "radio2", "check1", "check2", "hidden1", "hidden2", "name", "button", "area1", "select1", "select2", "select3"] ); + t( "Form element :input", "#form :input", ["text1", "text2", "radio1", "radio2", "check1", "check2", "hidden1", "hidden2", "name", "search", "button", "area1", "select1", "select2", "select3"] ); t( "Form element :radio", "#form :radio", ["radio1", "radio2"] ); t( "Form element :checkbox", "#form :checkbox", ["check1", "check2"] ); t( "Form element :text", "#form :text", ["text1", "text2", "hidden2", "name"] );