【问题标题】:VueJS - Disable a Select Drop-down menu if there are less than 2 optionsVueJS - 如果选项少于 2 个,则禁用选择下拉菜单
【发布时间】:2021-04-27 15:23:25
【问题描述】:

我有几个选择下拉菜单,它们使用 Axios 调用提取数据。如果剩下的选项少于 2 个,我希望禁用下拉菜单(灰显)。我已设法禁用提交按钮作为概念证明,但我无法禁用选择菜单本身。也许你不能这样做,我不确定。像大多数发布 Vue 问题的人一样。我是 Vue 的新手 :) 任何帮助将不胜感激。

<div id="app">
<select v-model="quantity">
 <option disabled value="">Select</option>
  <option value="1">1</option>
  <option value="2">2</option>
   <option value="3">3</option>
   <option value="4">4</option>
  <option value="5">5</option>
   <option value="6">6</option>
</select>

 <button type="submit" :disabled="submitDisabled">Submit</button>
</div>

new Vue({
  el: '#app',
  data: {
    quantity :""
  },
  computed: {
    submitDisabled: function () {
    return this.quantity < 2 ? true : false;
    }
  }
});

【问题讨论】:

    标签: vue.js


    【解决方案1】:

    您可以使用v-bind 指令将&lt;select&gt;disabled 属性绑定到像selectDisabled 这样的计算属性:

    <select v-model="quantity" v-bind:disabled="selectDisabled">
    

    例子:

    new Vue({
      el: '#app',
      data: {
        quantity: 0,
        options: [1, 2]
      },
      computed: {
        submitDisabled: function() {
          return this.quantity < 2;
        },
        selectDisabled: function() {
          return this.options.length <= 2;
        }
      }
    });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
    <div id="app">
      <select v-model="quantity" :disabled="selectDisabled">
        <option disabled value="">Select</option>
        <option v-for="option in options" :value="option">{{option}}</option>
      </select>
    
      <button type="submit" :disabled="submitDisabled">Submit</button>
    </div>

    【讨论】:

    • 感谢您抽出宝贵时间提供帮助!但是,它似乎对我不起作用。无论
    • @user13928344 我添加了一个示例,希望对您有所帮助。 vue.js 创建&lt;option&gt;s 的方式是从data创建它们
    • @user13928344 这很完美!非常感谢你的帮助。非常感激。我注意到,当它禁用选择框时,它会显示第一个选项,即“请选择”选项,这当然是它应该做的。然而。我需要它来显示选择菜单中剩下的第二个也是唯一的选项。关于如何做到这一点的任何建议?
    • 对我来说,上面的示例在 chrome 或 firefox 上没有显示任何内容。我建议您对目前的设置提出一个新问题
    • 对我来说效果很好。如果您在选项中添加另一个项目: [1, 2, 3] 它会按预期显示选择菜单。
    猜你喜欢
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2020-01-18
    相关资源
    最近更新 更多