Vue2:对非现有输入元素做出反应

时间:2017-06-12 16:22:33

标签: vue.js vuejs2

我尝试创建一个验证,让表单字段根据不同的字段设置进行传递。在此示例中,location2输入不存在,因此Vue有效方法永远不会返回true。 我的表单是服务器端动态,所以我得到两组不同的字段。有时候location2就在那里,应该在Vue里检查,有时它不在那里,不应该检查。我不知道Vue里面是否有东西可以用来做。我已经尝试过在Vue.set(App, 'location2', 'Test');之外使用,具体取决于字段的存在,但这并不是很好。

我希望这是可以理解的:)

<div id="app">   
  <input name="location" v-model="location" value="" type="text" required="required">
  <br />
  <!-- <input name="location2" v-model="location2" value="" type="text"required="required"> -->
  <p>
    Location: {{location}}
    <br /> Location2: {{location2}}
  </p>
  <button type="submit" :disabled="valid()">Go</button>
</div>

SD

new Vue({
  el: '#app',
  data: {
    location: '',
    location2: ''
  },
  methods: {
    valid: function() {

      return !(this.location != '' && this.location2 != '');
    }
  },
})

https://jsfiddle.net/bf1ge2xt/

2 个答案:

答案 0 :(得分:0)

如果输入的except属性始终与Vue组件的数据属性相匹配,则name方法可以遍历组件中的每个valid,并检查是否具有相同名称的财产有效:

input

Here's a working fiddle.

答案 1 :(得分:0)

您可以检查一下是否设置了this.location2吗?

new Vue({
  el: '#app',
  data: {
    location: '',
    location2: ''
  },
  methods: {
    valid: function() {
      if (this.location2) {
        return !(this.location != '' && this.location2 != '');
      }
      return this.location == '';
    }
  },
})

小提琴:Selenium Documentation