diff --git a/apps/common/main/lib/component/CheckBox.js b/apps/common/main/lib/component/CheckBox.js index 8676d2c39..f25578afc 100644 --- a/apps/common/main/lib/component/CheckBox.js +++ b/apps/common/main/lib/component/CheckBox.js @@ -146,11 +146,9 @@ define([ if (disabled !== this.disabled) { this.$label.toggleClass('disabled', disabled); (disabled) ? this.$chk.attr({disabled: disabled}) : this.$chk.removeAttr('disabled'); - if (disabled) { - this.tabindex = this.$label.attr('tabindex'); - this.$label.attr('tabindex', -1); - } else if (this.tabindex) { - this.$label.attr('tabindex', this.tabindex); + if (this.tabindex!==undefined) { + disabled && (this.tabindex = this.$label.attr('tabindex')); + this.$label.attr('tabindex', disabled ? "-1" : this.tabindex); } } @@ -216,6 +214,14 @@ define([ focus: function() { this.$label && this.$label.focus(); + }, + + setTabIndex: function(tabindex) { + if (!this.rendered) + return; + + this.tabindex = tabindex.toString(); + !this.disabled && this.$label.attr('tabindex', this.tabindex); } }); }); \ No newline at end of file diff --git a/apps/common/main/lib/component/FocusManager.js b/apps/common/main/lib/component/FocusManager.js index fc39780ac..6b64b4f83 100644 --- a/apps/common/main/lib/component/FocusManager.js +++ b/apps/common/main/lib/component/FocusManager.js @@ -75,7 +75,7 @@ Common.UI.FocusManager = new(function() { item.selector = '.form-control'; } item.el = (item.cmp.$el || $(item.cmp.el || item.cmp)).find(item.selector).addBack().filter(item.selector); - item.el && item.el.attr && item.el.attr('tabindex', _tabindex.toString()); + item.el && item.el.attr && (item.cmp.setTabIndex ? item.cmp.setTabIndex(_tabindex) : item.el.attr('tabindex', _tabindex.toString())); arr.push(item); } }); diff --git a/apps/common/main/lib/component/RadioBox.js b/apps/common/main/lib/component/RadioBox.js index 33e13cfbe..6ae5a02eb 100644 --- a/apps/common/main/lib/component/RadioBox.js +++ b/apps/common/main/lib/component/RadioBox.js @@ -120,11 +120,9 @@ define([ this.$label.toggleClass('disabled', disabled); this.$radio.toggleClass('disabled', disabled); (disabled) ? this.$radio.attr({disabled: disabled}) : this.$radio.removeAttr('disabled'); - if (disabled) { - this.tabindex = this.$label.attr('tabindex'); - this.$label.attr('tabindex', -1); - } else if (this.tabindex) { - this.$label.attr('tabindex', this.tabindex); + if (this.tabindex!==undefined) { + disabled && (this.tabindex = this.$label.attr('tabindex')); + this.$label.attr('tabindex', disabled ? "-1" : this.tabindex); } } @@ -176,6 +174,14 @@ define([ focus: function() { this.$label && this.$label.focus(); + }, + + setTabIndex: function(tabindex) { + if (!this.rendered) + return; + + this.tabindex = tabindex.toString(); + !this.disabled && this.$label.attr('tabindex', this.tabindex); } }); }); \ No newline at end of file