aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTJ VanToll <tj.vantoll@gmail.com>2014-01-28 10:46:23 -0500
committerTJ VanToll <tj.vantoll@gmail.com>2014-01-28 10:58:30 -0500
commitccb13240dd8b5cfac0199a30dcec4a71cbe1b252 (patch)
treea873ab483e7ab3bc6575c591c7f4278e86c1242a
parentfa23894dffe81a80326e246cd87e4ebfd490c9f3 (diff)
downloadjquery-ui-ccb13240dd8b5cfac0199a30dcec4a71cbe1b252.tar.gz
jquery-ui-ccb13240dd8b5cfac0199a30dcec4a71cbe1b252.zip
Button: Ignore non-radio elements with the same name
Fixes #8761 Closes gh-1185
-rw-r--r--tests/unit/button/button_core.js14
-rw-r--r--ui/button.js4
2 files changed, 16 insertions, 2 deletions
diff --git a/tests/unit/button/button_core.js b/tests/unit/button/button_core.js
index 41623e08d..f647cdc26 100644
--- a/tests/unit/button/button_core.js
+++ b/tests/unit/button/button_core.js
@@ -53,6 +53,20 @@ test("radio groups", function() {
assert(":eq(1)", ":eq(0)", ":eq(0)");
});
+test( "radio groups - ignore elements with same name", function() {
+ expect( 1 );
+ var form = $( "form:first" ),
+ radios = form.find( "[type=radio]" ).button(),
+ checkbox = $( "<input>", {
+ type: "checkbox",
+ name: radios.attr( "name" )
+ });
+
+ form.append( checkbox );
+ radios.button( "refresh" );
+ ok( true, "no exception from accessing button instance of checkbox" );
+});
+
test("input type submit, don't create child elements", function() {
expect( 2 );
var input = $("#submit");
diff --git a/ui/button.js b/ui/button.js
index 4b401e1a3..96fea440f 100644
--- a/ui/button.js
+++ b/ui/button.js
@@ -40,9 +40,9 @@ var lastActive,
if ( name ) {
name = name.replace( /'/g, "\\'" );
if ( form ) {
- radios = $( form ).find( "[name='" + name + "']" );
+ radios = $( form ).find( "[name='" + name + "'][type=radio]" );
} else {
- radios = $( "[name='" + name + "']", radio.ownerDocument )
+ radios = $( "[name='" + name + "'][type=radio]", radio.ownerDocument )
.filter(function() {
return !this.form;
});