mirror of
https://github.com/jquery/jquery-ui.git
synced 2026-05-13 03:01:39 -04:00
Selectmenu: improved disabled state handling
This commit is contained in:
@@ -33,21 +33,22 @@ test("enable / disable", function () {
|
||||
var element = $("#speed").selectmenu();
|
||||
var widget = element.selectmenu("widget");
|
||||
var button = widget.filter(".ui-selectmenu-button");
|
||||
var link = button.children("a");
|
||||
var menu = widget.filter(".ui-selectmenu-menu");
|
||||
|
||||
element.selectmenu("disable")
|
||||
ok( element.selectmenu("option", "disabled"), "disable: widget option" );
|
||||
equals( button.attr("aria-disabled"), "true", "disable: button wrapper ARIA" );
|
||||
equals( button.children("a").attr("aria-disabled"), "true", "disable: button ARIA" );
|
||||
equals( button.children("a").attr("tabindex"), -1, "disable: button tabindex" );
|
||||
equals( link.attr("aria-disabled"), "true", "disable: button ARIA" );
|
||||
equals( link.attr("tabindex"), -1, "disable: button tabindex" );
|
||||
equals( menu.attr("aria-disabled"), "true", "disable: menu wrapper ARIA" );
|
||||
equals( menu.children("ul").attr("aria-disabled"), "true", "disable: menu ARIA" );
|
||||
|
||||
element.selectmenu("enable")
|
||||
ok( !element.selectmenu("option", "disabled"), "enable: widget option" );
|
||||
equals( button.attr("aria-disabled"), "false", "enable: button wrapper ARIA" );
|
||||
equals( button.children("a").attr("aria-disabled"), "false", "enable: button ARIA" );
|
||||
equals( button.children("a").attr("tabindex"), 0, "enable: button tabindex" );
|
||||
equals( link.attr("aria-disabled"), "false", "enable: button ARIA" );
|
||||
equals( link.attr("tabindex"), 0, "enable: button tabindex" );
|
||||
equals( menu.attr("aria-disabled"), "false", "enable: menu wrapper ARIA" );
|
||||
equals( menu.children("ul").attr("aria-disabled"), "false", "enable: menu ARIA" );
|
||||
});
|
||||
|
||||
7
ui/jquery.ui.selectmenu.js
vendored
7
ui/jquery.ui.selectmenu.js
vendored
@@ -62,6 +62,10 @@ $.widget( "ui.selectmenu", {
|
||||
this._bind( this.button, this._buttonEvents );
|
||||
|
||||
this._drawMenu();
|
||||
|
||||
if ( this.element.attr( 'disabled' ) ) {
|
||||
this.disable();
|
||||
}
|
||||
},
|
||||
|
||||
_drawButton: function() {
|
||||
@@ -78,7 +82,6 @@ $.widget( "ui.selectmenu", {
|
||||
css: {
|
||||
width: this.element.outerWidth()
|
||||
},
|
||||
'aria-disabled': this.options.disabled,
|
||||
'aria-owns': this.ids.menu,
|
||||
'aria-haspopup': true
|
||||
})
|
||||
@@ -391,6 +394,7 @@ $.widget( "ui.selectmenu", {
|
||||
}
|
||||
if ( key === "disabled" ) {
|
||||
this.button.button( "option", "disabled", value );
|
||||
this.menu.menu( "option", "disabled", value );
|
||||
if ( value ) {
|
||||
this.element.attr( "disabled", "disabled" );
|
||||
this.button.attr( "tabindex", -1 );
|
||||
@@ -399,7 +403,6 @@ $.widget( "ui.selectmenu", {
|
||||
this.element.removeAttr( "disabled" );
|
||||
this.button.attr( "tabindex", 0 );
|
||||
}
|
||||
this.menu.attr( "aria-disabled", value );
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user