Skip to content

Commit d430596

Browse files
pczarnDamian Dulisz
authored andcommitted
Fix User Experience with tab navigation (shentao#430)
1 parent c417cde commit d430596

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

src/multiselectMixin.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,8 @@ export default {
464464
if (this.blockKeys.indexOf(key) !== -1 || this.disabled || option.$isLabel || option.$isDisabled) return
465465
/* istanbul ignore else */
466466
if (this.max && this.multiple && this.internalValue.length === this.max) return
467+
/* istanbul ignore else */
468+
if (key === 'Tab' && !this.pointerDirty) return
467469
if (option.isTag) {
468470
this.$emit('tag', option.label, this.id)
469471
this.search = ''

src/pointerMixin.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export default {
22
data () {
33
return {
44
pointer: 0,
5+
pointerDirty: false,
56
visibleElements: this.maxHeight / this.optionHeight
67
}
78
},
@@ -28,6 +29,9 @@ export default {
2829
watch: {
2930
filteredOptions () {
3031
this.pointerAdjust()
32+
},
33+
isOpen () {
34+
this.pointerDirty = false
3135
}
3236
},
3337
methods: {
@@ -55,6 +59,7 @@ export default {
5559
/* istanbul ignore else */
5660
if (this.filteredOptions[this.pointer].$isLabel) this.pointerForward()
5761
}
62+
this.pointerDirty = true
5863
},
5964
pointerBackward () {
6065
if (this.pointer > 0) {
@@ -69,6 +74,7 @@ export default {
6974
/* istanbul ignore else */
7075
if (this.filteredOptions[0].$isLabel) this.pointerForward()
7176
}
77+
this.pointerDirty = true
7278
},
7379
pointerReset () {
7480
/* istanbul ignore else */
@@ -89,6 +95,7 @@ export default {
8995
},
9096
pointerSet (index) {
9197
this.pointer = index
98+
this.pointerDirty = true
9299
}
93100
}
94101
}

0 commit comments

Comments
 (0)