Ver Fonte

fix tab-on-select transfers focus to next element. fixes #898. fixes #1045

Igor Vaynberg há 12 anos atrás
pai
commit
4094c1c7de
1 ficheiros alterados com 8 adições e 4 exclusões
  1. 8 4
      select2.js

+ 8 - 4
select2.js

@@ -1285,7 +1285,7 @@ the specific language governing permissions and limitations under the Apache Lic
             this.results.empty();
             this.results.empty();
 
 
 
 
-               this.clearSearch();
+            this.clearSearch();
             this.search.removeClass("select2-active");
             this.search.removeClass("select2-active");
             this.opts.element.trigger($.Event("select2-close"));
             this.opts.element.trigger($.Event("select2-close"));
         },
         },
@@ -1729,7 +1729,7 @@ the specific language governing permissions and limitations under the Apache Lic
             if (!this.opened()) return;
             if (!this.opened()) return;
             this.parent.close.apply(this, arguments);
             this.parent.close.apply(this, arguments);
             this.focusser.removeAttr("disabled");
             this.focusser.removeAttr("disabled");
-            focus(this.focusser);
+            this.focusser.focus();
         },
         },
 
 
         // single
         // single
@@ -1791,11 +1791,13 @@ the specific language governing permissions and limitations under the Apache Lic
                         this.moveHighlight((e.which === KEY.UP) ? -1 : 1);
                         this.moveHighlight((e.which === KEY.UP) ? -1 : 1);
                         killEvent(e);
                         killEvent(e);
                         return;
                         return;
-                    case KEY.TAB:
                     case KEY.ENTER:
                     case KEY.ENTER:
                         this.selectHighlighted();
                         this.selectHighlighted();
                         killEvent(e);
                         killEvent(e);
                         return;
                         return;
+                    case KEY.TAB:
+                        this.selectHighlighted({noFocus: true});
+                        return;
                     case KEY.ESC:
                     case KEY.ESC:
                         this.cancel(e);
                         this.cancel(e);
                         killEvent(e);
                         killEvent(e);
@@ -2328,10 +2330,12 @@ the specific language governing permissions and limitations under the Apache Lic
                         killEvent(e);
                         killEvent(e);
                         return;
                         return;
                     case KEY.ENTER:
                     case KEY.ENTER:
-                    case KEY.TAB:
                         this.selectHighlighted();
                         this.selectHighlighted();
                         killEvent(e);
                         killEvent(e);
                         return;
                         return;
+                    case KEY.TAB:
+                        this.selectHighlighted({noFocus:true});
+                        return;
                     case KEY.ESC:
                     case KEY.ESC:
                         this.cancel(e);
                         this.cancel(e);
                         killEvent(e);
                         killEvent(e);