From: Felix Nagel Date: Tue, 28 Jun 2011 22:38:30 +0000 (+0200) Subject: fixed: disabled Selectmenu receives focus on tab, thx to gcko, see https://github... X-Git-Tag: selectmenu_v1.2.0~33 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=e519c34a64f58116c998e31c1890f8c1ba368421;p=jquery-ui.git fixed: disabled Selectmenu receives focus on tab, thx to gcko, see https://github.com/fnagel/jquery-ui/issues/136 --- diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js index 0d4f45a80..d7fe29e3d 100644 --- a/ui/jquery.ui.selectmenu.js +++ b/ui/jquery.ui.selectmenu.js @@ -573,25 +573,28 @@ $.widget("ui.selectmenu", { }, _moveSelection: function(amt, recIndex) { - var currIndex = parseInt(this._selectedOptionLi().data('index') || 0, 10); - var newIndex = currIndex + amt; - // do not loop when using up key + // do nothing if disabled + if (!this.options.disabled) { + var currIndex = parseInt(this._selectedOptionLi().data('index') || 0, 10); + var newIndex = currIndex + amt; + // do not loop when using up key - if (newIndex < 0) { - newIndex = 0; - } - if (newIndex > this._optionLis.size() - 1) { - newIndex = this._optionLis.size() - 1; - } - //Occurs when a full loop has been made - if (newIndex === recIndex) { return false; } + if (newIndex < 0) { + newIndex = 0; + } + if (newIndex > this._optionLis.size() - 1) { + newIndex = this._optionLis.size() - 1; + } + // Occurs when a full loop has been made + if (newIndex === recIndex) { return false; } - if (this._optionLis.eq(newIndex).hasClass( this.namespace + '-state-disabled' )) { - // if option at newIndex is disabled, call _moveFocus, incrementing amt by one - (amt > 0) ? ++amt : --amt; - this._moveSelection(amt, newIndex); - } else { - return this._optionLis.eq(newIndex).trigger('mouseup'); + if (this._optionLis.eq(newIndex).hasClass( this.namespace + '-state-disabled' )) { + // if option at newIndex is disabled, call _moveFocus, incrementing amt by one + (amt > 0) ? ++amt : --amt; + this._moveSelection(amt, newIndex); + } else { + return this._optionLis.eq(newIndex).trigger('mouseup'); + } } },