Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js VueJS-如果选项少于2个,则禁用选择下拉菜单_Vue.js - Fatal编程技术网

Vue.js VueJS-如果选项少于2个,则禁用选择下拉菜单

Vue.js VueJS-如果选项少于2个,则禁用选择下拉菜单,vue.js,Vue.js,我有几个选择下拉列表,它们使用Axios调用提取数据。如果剩下的选项少于2个,我希望将下拉列表禁用为灰色。我已经设法禁用了提交按钮作为概念证明,但我无法使选择菜单本身禁用。也许你不能这样做,我不确定。就像大多数发布Vue问题的人一样。我是Vue的新手:任何帮助都将不胜感激 <div id="app"> <select v-model="quantity"> <option disabled value=""

我有几个选择下拉列表,它们使用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;
    }
  }
});
您可以使用指令将的disabled属性绑定到计算属性,如selectDisabled:

例如:

新Vue{ el:“应用程序”, 数据:{ 数量:0, 选项:[1,2] }, 计算:{ submitDisabled:函数{ 返回此值。数量<2; }, 选择禁用:功能{
返回this.options.length感谢您花时间提供帮助!但是,这似乎对我不起作用。无论选择的数量多少,选择都被禁用。是否有其他方法可以实现此目的?@user13928344我添加了一个示例,希望能有所帮助。vue.js创建s的方法是从data@user13928344这个很好用!非常感谢非常感谢您的帮助。非常感谢。我注意到当它禁用选择框时,它会显示第一个选项,“请选择”选项,这当然是它应该做的。但是,我需要它显示选择菜单中剩下的第二个也是唯一的选项。关于如何做的任何建议?对于我来说,上面的示例在c上没有显示任何内容Chrome或firefox。我建议您在目前的设置中提出一个新问题,它对我来说效果很好。如果您在选项中添加另一项:[1、2、3],它会按预期显示选择菜单。
<select v-model="quantity" v-bind:disabled="selectDisabled">