代码之家  ›  专栏  ›  技术社区  ›  Pavel Kovalev

veevalidate作用域验证不起作用

  •  0
  • Pavel Kovalev  · 技术社区  · 7 年前

    我正在构建一个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 回复  |  直到 7 年前
        1
  •  0
  •   Pavel Kovalev    7 年前

    我找到了!

    好的,所以解决方法是 表单标签 不是 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/