如果满足 vue.js 中的条件,如何启用禁用的按钮?

How to enable a disabled button if a condition is met in vue.js?

我有一个 'submit' 按钮,我目前在 van-submit-bar 下将其设置为禁用。我需要在用户 select 从下拉选项中输入 table 数字后启用它。

这是提交按钮;

<van-submit-bar
      :price="toPrice(basketTotalPrice)"
      disabled
      label="Total:"
      currency="£"
      button-text="Submit"
      :loading="isLoading"
      @submit="onSubmit"
    >

这是 select table 下拉选项;

   <div v-bind:style="style"></div>
    <van-dropdown-menu direction="up">
    <van-dropdown-item v-model="value1" :options="option1" />
    </van-dropdown-menu>



option1: [
            { text: 'Select Table', value: 0 },
            { text: 'Table 1', value: 1 },
            { text: 'Table 2', value: 2 },
            { text: 'Table 3', value: 3 }, 

看起来这应该是一件容易的事,但我遇到了一些麻烦。

谢谢

您可以利用 Vue 的反应性很容易地做到这一点。在没有看到您的代码的情况下,我只能提供一种通用方法。

在您的模板中

<select v-model="selectData">...</select>
<button :disabled="!selectData">Action</button>

然后在你的脚本中

data () {
    return {
      selectData: null,
    }
  },

这将导致值开始时为空,当 select 列表更改时,v-model 将更新并启用按钮。

您可以像这样切换元素的禁用 属性:

  • 布尔值 - :disabled="true""disabled="false"
  • 变量 - :disabled="yourVariable"
  • 函数 - :disabled="yourFunc(arg)"

您的代码最终将如下所示:

<van-submit-bar
      :price="toPrice(basketTotalPrice)"
      :disabled="yourVariable" // <-- You can use a variable or call a function must be a boolean value
      label="Total:"
      currency="£"
      button-text="Submit"
      :loading="isLoading"
      @submit="onSubmit"
    >

我设法通过添加使其工作;

<van-submit-bar
  :price="toPrice(basketTotalPrice)"
  label="Total:"
  currency="£"
  button-text="Submit"
  :loading="isLoading"
  **:disabled="!selectedTable"**
  @submit="onSubmit"
>

并将 selectedTable: 0, 添加到我的 data() 部分