VeeValidate范围验证不起作用

时间:2018-12-29 01:21:44

标签: vuejs2 vee-validate

我正在构建一个在同一页面上具有多种表单的Web应用程序,因此scoped validation from VeeValidate似乎是一个显而易见的选择,但我无法使其正常运行。

无论我做什么,模型始终有效。我建立了一个小例子来帮助您https://jsfiddle.net/pvkovalev/3vwp9zdo/

这是我的HTML代码:

<div id="app">
  <div data-vv-scope="InformationStep1">
    <input v-model="input1" v-validate="{required: true}" />
  </div>
  <div data-vv-scope="InformationStep2">
    <input v-model="input2" v-validate="{required: false}" />
  </div>
  <input type="button" @click="validate" value="validate" />
</div>

和JS:

Vue.use(VeeValidate)

new Vue({
  el: "#app",
  data: {
    input1: undefined,
    input2: 'not required'
  },
  methods: {
    validate: function (){
        this.$validator.validateAll('InformationStep1').then((result) => {
        alert('InformationStep1 valid: '+ JSON.stringify(result))
      })
      this.$validator.validateAll('InformationStep2').then((result) => {
        alert('InformationStep2 valid: '+ JSON.stringify(result))
      })
    }
  }
})

我在这里想念什么?也许,显而易见。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

我找到了!

好的,因此解决方案是使用 form标签,而不是 div 标签。更改后,它就像是一种魅力。

这是一个新代码:

<div id="app">
  <form data-vv-scope="InformationStep1">
    <input v-model="input1" v-validate="{required: false}" />
  </form>
  <form data-vv-scope="InformationStep2">
    <input v-model="input2" v-validate="{required: true}" />
  </form>
  <input type="button" @click="validate" value="validate" />
</div>

和新提琴https://jsfiddle.net/pvkovalev/1L5t3dsc/