Skip to content

Commit 7621313

Browse files
committed
Selectmenu: improved disabled state handling
1 parent 8c17f74 commit 7621313

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

tests/unit/selectmenu/selectmenu_methods.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,22 @@ test("enable / disable", function () {
3333
var element = $("#speed").selectmenu();
3434
var widget = element.selectmenu("widget");
3535
var button = widget.filter(".ui-selectmenu-button");
36+
var link = button.children("a");
3637
var menu = widget.filter(".ui-selectmenu-menu");
3738

3839
element.selectmenu("disable")
3940
ok( element.selectmenu("option", "disabled"), "disable: widget option" );
4041
equals( button.attr("aria-disabled"), "true", "disable: button wrapper ARIA" );
41-
equals( button.children("a").attr("aria-disabled"), "true", "disable: button ARIA" );
42-
equals( button.children("a").attr("tabindex"), -1, "disable: button tabindex" );
42+
equals( link.attr("aria-disabled"), "true", "disable: button ARIA" );
43+
equals( link.attr("tabindex"), -1, "disable: button tabindex" );
4344
equals( menu.attr("aria-disabled"), "true", "disable: menu wrapper ARIA" );
4445
equals( menu.children("ul").attr("aria-disabled"), "true", "disable: menu ARIA" );
4546

4647
element.selectmenu("enable")
4748
ok( !element.selectmenu("option", "disabled"), "enable: widget option" );
4849
equals( button.attr("aria-disabled"), "false", "enable: button wrapper ARIA" );
49-
equals( button.children("a").attr("aria-disabled"), "false", "enable: button ARIA" );
50-
equals( button.children("a").attr("tabindex"), 0, "enable: button tabindex" );
50+
equals( link.attr("aria-disabled"), "false", "enable: button ARIA" );
51+
equals( link.attr("tabindex"), 0, "enable: button tabindex" );
5152
equals( menu.attr("aria-disabled"), "false", "enable: menu wrapper ARIA" );
5253
equals( menu.children("ul").attr("aria-disabled"), "false", "enable: menu ARIA" );
5354
});

ui/jquery.ui.selectmenu.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ $.widget( "ui.selectmenu", {
6262
this._bind( this.button, this._buttonEvents );
6363

6464
this._drawMenu();
65+
66+
if ( this.element.attr( 'disabled' ) ) {
67+
this.disable();
68+
}
6569
},
6670

6771
_drawButton: function() {
@@ -78,7 +82,6 @@ $.widget( "ui.selectmenu", {
7882
css: {
7983
width: this.element.outerWidth()
8084
},
81-
'aria-disabled': this.options.disabled,
8285
'aria-owns': this.ids.menu,
8386
'aria-haspopup': true
8487
})
@@ -391,6 +394,7 @@ $.widget( "ui.selectmenu", {
391394
}
392395
if ( key === "disabled" ) {
393396
this.button.button( "option", "disabled", value );
397+
this.menu.menu( "option", "disabled", value );
394398
if ( value ) {
395399
this.element.attr( "disabled", "disabled" );
396400
this.button.attr( "tabindex", -1 );
@@ -399,7 +403,6 @@ $.widget( "ui.selectmenu", {
399403
this.element.removeAttr( "disabled" );
400404
this.button.attr( "tabindex", 0 );
401405
}
402-
this.menu.attr( "aria-disabled", value );
403406
}
404407
},
405408

0 commit comments

Comments
 (0)