Commit 52cfcd662b78ca2f550c00c35686920dcc13d1b8
1 parent
1376a01a
Keep last selected option index
Showing
1 changed file
with
5 additions
and
1 deletions
Show diff stats
src/components/select/select.vue
| @@ -446,7 +446,6 @@ | @@ -446,7 +446,6 @@ | ||
| 446 | if (this.disabled || this.autoComplete) { | 446 | if (this.disabled || this.autoComplete) { |
| 447 | return false; | 447 | return false; |
| 448 | } | 448 | } |
| 449 | - this.focusIndex = -1; | ||
| 450 | 449 | ||
| 451 | this.visible = typeof force !== 'undefined' ? force : !this.visible; | 450 | this.visible = typeof force !== 'undefined' ? force : !this.visible; |
| 452 | if (this.visible){ | 451 | if (this.visible){ |
| @@ -571,6 +570,11 @@ | @@ -571,6 +570,11 @@ | ||
| 571 | this.hideMenu(); | 570 | this.hideMenu(); |
| 572 | } | 571 | } |
| 573 | 572 | ||
| 573 | + this.focusIndex = this.flatOptions.findIndex((opt) => { | ||
| 574 | + if (!opt || !opt.componentOptions) return false; | ||
| 575 | + return opt.componentOptions.propsData.value === option.value; | ||
| 576 | + }); | ||
| 577 | + | ||
| 574 | if (this.filterable){ | 578 | if (this.filterable){ |
| 575 | const inputField = this.$el.querySelector('input[type="text"]'); | 579 | const inputField = this.$el.querySelector('input[type="text"]'); |
| 576 | if (!this.autoComplete) this.$nextTick(() => inputField.focus()); | 580 | if (!this.autoComplete) this.$nextTick(() => inputField.focus()); |