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
Javascript vuejs-如何绑定两个条件以启用提交按钮?_Javascript_Vue.js_Computed Properties_Buefy - Fatal编程技术网

Javascript vuejs-如何绑定两个条件以启用提交按钮?

Javascript vuejs-如何绑定两个条件以启用提交按钮?,javascript,vue.js,computed-properties,buefy,Javascript,Vue.js,Computed Properties,Buefy,我想尽可能简单地验证我的输入 因此,如果输入不为null,则应选中该输入,并且必须选中复选框以启用submit按钮 目前,我只能绑定必须选中复选框的条件,但我不知道如何也绑定输入。长度!=0条件 当前代码: 我读到计算机属性可以做这项工作,但在我的案例中,我无法让它工作 谢谢大家。如果您想在未添加任何输入或未选中复选框的情况下禁用/隐藏按钮,最好的解决方案是使用计算属性。此外,还添加了v-model=input,但没有添加数据属性 以下是如何做到这一点 Vue.useBuefy.default

我想尽可能简单地验证我的输入

因此,如果输入不为null,则应选中该输入,并且必须选中复选框以启用submit按钮

目前,我只能绑定必须选中复选框的条件,但我不知道如何也绑定输入。长度!=0条件

当前代码:

我读到计算机属性可以做这项工作,但在我的案例中,我无法让它工作


谢谢大家。

如果您想在未添加任何输入或未选中复选框的情况下禁用/隐藏按钮,最好的解决方案是使用计算属性。此外,还添加了v-model=input,但没有添加数据属性

以下是如何做到这一点

Vue.useBuefy.default var App=新的Vue{ el:“应用程序”, 数据:函数{ 返回{ 勾选:假, I:错, 电子邮件:空 } }, 方法:{ 日志{ console.logarguments } }, 计算:{ ValidDataAdd:函数{ 返回this.checked&&this.email&&this.email.length>0; } } } 应用程序{ 边缘:2米; } v斗篷{ 显示:无; } 布菲 订阅 维恩·努岑·弗尔·登·范桑德·安塞尔通讯社。本·蒂根·戴恩的电子邮件地址,是希肯·祖·科恩的通讯。最好的选择是在迪恩·德尔芬的家里。韦特瑞信息中心发现了一个秘密

Deine时事通讯是erfolgt,Besätige nun den Double Opt In Link In der Besätigungsemail。
您可以添加一个带有专用函数的方法组,以启用按钮,甚至更改按钮和按钮类:

<template>
  <b-input
    placeholder="E-Mailadresse"
    type="email"
    v-model="mail"
    v-bind:class="classMail"                 
   @change="checkMail()"
  >
  </b-input>
  <button class="button" :class="classSubmitMail"
        @click="isActive = !isActive"    
        :disabled="mailOk">
    Subscribe
  </button>
...
</template>
<script>
export default {
  data () {
    return {
      email: '',
      checked: false,
      isActive: false,
      mailOk: false,
      classMail: 'is-what-you-nead'
      classSubmitMail: 'is-gray'
    }
  },
  methods: {
     checkMail: function () {
       this.mailOk = false
       // regexp stuff check mail .. .
       // this.mailOk = ... 
       //this.classMail = 'is-...'
       if (mailOk && this.checked) {
         this.classSubmit = 'is-success'
         this.classMail = 'is-success'
       } else {
         this.classSubmit = 'is-warning'
       }
    }
  }
}

将输入添加到您的数据属性中,然后检查是否已选中此项(&inputTried)。没用。这就是为什么它在当前代码中丢失的原因。v-model=input是一个遗留问题。我真的很想知道,为什么我会获得负面声誉?谢谢@azs06。您的解决方案与我的方法最接近v-model=输入是我失败的前一个解决方案的遗留问题。谢谢@lucilefievet。我欢迎你的做法。就我个人而言,我将坚持使用**asz06**参见上面的解决方案,因为它与我以前尝试过的方法非常接近,我不希望所有的类都包含在函数中。无论如何谢谢你是的,asz06更优雅:而且最好使用计算机
<template>
  <b-input
    placeholder="E-Mailadresse"
    type="email"
    v-model="mail"
    v-bind:class="classMail"                 
   @change="checkMail()"
  >
  </b-input>
  <button class="button" :class="classSubmitMail"
        @click="isActive = !isActive"    
        :disabled="mailOk">
    Subscribe
  </button>
...
</template>
<script>
export default {
  data () {
    return {
      email: '',
      checked: false,
      isActive: false,
      mailOk: false,
      classMail: 'is-what-you-nead'
      classSubmitMail: 'is-gray'
    }
  },
  methods: {
     checkMail: function () {
       this.mailOk = false
       // regexp stuff check mail .. .
       // this.mailOk = ... 
       //this.classMail = 'is-...'
       if (mailOk && this.checked) {
         this.classSubmit = 'is-success'
         this.classMail = 'is-success'
       } else {
         this.classSubmit = 'is-warning'
       }
    }
  }
}