当Vue.js输入为空时如何禁用按钮?

时间:2020-09-13 20:21:36

标签: vue.js

我是Vuejs的新手。我正在尝试在输入字段为空时禁用按钮。

我正在尝试:

<div>
    <input v-model="discount" type="text">
    <button v-bind:class="{ 'opacity-25': discount === '' }" v-bind:disabled="discount.length === 0">Apply</button>
</div>

<script>
new Vue({
    el: '#app',

    data () {
        return {
            discount: ''
        }
    }
}
</script>

注意:此输入不属于<div id="app">

2 个答案:

答案 0 :(得分:0)

您可以简单地对数据属性使用单个否定符。

new Vue({
  el: '#app',
  data() {
    return {
      discount: ''
    }
  },
  methods: {
    btnClicked() {
      console.log(this.discount)
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id='app'>
  <input v-model="discount" type="text">
  <button v-bind:disabled="!discount" @click="btnClicked">Apply</button>
</div>

答案 1 :(得分:-2)

据我所知,您实际上只是在检查数据是否为假时,便在检查数据“折扣”的长度。

将按钮的html更改为以下

<button v-bind:class="{ 'opacity-25': discount === '' }" v-bind:disabled="!discount">Apply</button>

它也应该可以检查变量的长度,但是如果您只想检查变量是否具有值,则不必这样做。