Skip to content

Commit 2838c11

Browse files
committed
Button: Read disabled attribute from original element if disabled option is null. Fixes #5252 -Button: read disabled option from input elements.
1 parent 9060bf3 commit 2838c11

File tree

3 files changed

+30
-1
lines changed

3 files changed

+30
-1
lines changed

tests/unit/button/button_defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*/
44

55
var button_defaults = {
6-
disabled: false,
6+
disabled: null,
77
text: true,
88
label: null,
99
icons: {

tests/unit/button/button_options.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,30 @@
55

66
module("button: options");
77

8+
test("disabled, explicity value", function() {
9+
$("#radio01").button({ disabled: false });
10+
same(false, $("#radio01").button("option", "disabled"),
11+
"disabled option set to false");
12+
same(false, $("#radio01").attr("disabled"), "element is disabled");
13+
14+
$("#radio02").button({ disabled: true });
15+
same(true, $("#radio02").button("option", "disabled"),
16+
"disabled option set to true");
17+
same(true, $("#radio02").attr("disabled"), "element is not disabled");
18+
});
19+
20+
test("disabled, null", function() {
21+
$("#radio01").button({ disabled: null });
22+
same(false, $("#radio01").button("option", "disabled"),
23+
"disabled option set to false");
24+
same(false, $("#radio01").attr("disabled"), "element is disabled");
25+
26+
$("#radio02").attr("disabled", "disabled").button({ disabled: null });
27+
same(true, $("#radio02").button("option", "disabled"),
28+
"disabled option set to true");
29+
same(true, $("#radio02").attr("disabled"), "element is not disabled");
30+
});
31+
832
test("text false without icon", function() {
933
$("#button").button({
1034
text: false

ui/jquery.ui.button.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ var lastActive,
4444

4545
$.widget( "ui.button", {
4646
options: {
47+
disabled: null,
4748
text: true,
4849
label: null,
4950
icons: {
@@ -56,6 +57,10 @@ $.widget( "ui.button", {
5657
.unbind( "reset.button" )
5758
.bind( "reset.button", formResetHandler );
5859

60+
if ( typeof this.options.disabled !== "boolean" ) {
61+
this.options.disabled = this.element.attr( "disabled" );
62+
}
63+
5964
this._determineButtonType();
6065
this.hasTitle = !!this.buttonElement.attr( "title" );
6166

0 commit comments

Comments
 (0)