1

我对多个值使用vue-select。这是一个例子:https ://codepen.io/sagalbot/pen/opMGro

我有以下代码:

<v-select multiple v-model="selected" :options="options"></v-select>

和 JS:

Vue.component('v-select', VueSelect.VueSelect)

new Vue({
  el: '#app',
  data: {
    selected: ['foo','bar'],
    options: ['foo','bar','baz']
  }

谢谢!

4

3 回答 3

10

您可以使用v-on:input侦听器查看选择了多少项。

然后将它传递给一个简单的函数:

 <v-select multiple v-model="selected" :options="options" v-on:input="limiter"></v-select>

在此之后,创建一个limiter在您的方法中调用的函数,您将获得当前选定输入的列表,如

  methods: {
    limiter(e) {
      if(e.length > 2) {
        console.log(' you can only select two', e)
        e.pop()
      }
    },
  }

现在,如果您添加超过 2 个项目,那么最后一个项目将被删除,您将看到控制台日志

于 2018-03-07T15:23:51.480 回答
4

您可以简单地使用内联条件:

<v-select multiple v-model="selected" :options="selected.length < 2 ? options: []">

在上面的示例中,我限制了 2 个选项。如果选择了 2 个选项,则不会生成选项。删除选定的一个,然后您将看到选项下拉列表。

这是更新的演示

于 2018-03-07T15:40:26.457 回答
0

您可以使用

:selectable="() => selected.length < 3"

来自官方文档https://vue-select.org/guide/selectable.html#limiting-the-number-of-selections

于 2020-08-26T05:19:11.140 回答