2017-08-29 49 views
1

我使用V形验证来验证登记表格,我已经取得的代码如下所示,未被捕获的错误:[V形验证]没有这样的验证“1234567”存在

 <form @submit.prevent="signUp()"> 
      <div class="form-group" :class="{'has-error': errors.has('register.mobile_number') }" > 
      <input v-model="register.mobile_number" v-validate="register.mobile_number" data-vv-rules="required" required class="form-control" type="number" placeholder="Mobile Number"> 
      </div> 
      <div class="form-group" :class="{'has-error': errors.has('register.email') }" > 
      <input v-model="register.email" v-validate="register.email" class="form-control" type="email" data-vv-rules="required|email" placeholder="Email"> 
      </div> 
      <div class="form-group" :class="{'has-error': errors.has('register.password') }" > 
      <input v-model="register.password" v-validate="register.password" name="password" data-vv-rules="required" class="form-control" type="password" placeholder="Password"> 
      </div> 
      <div class="form-group" :class="{'has-error': errors.has('register.confirm_password') }" > 
      <input v-model="register.confirm_password" v-validate="register.confirm_password" name="confirm_password" data-vv-as="password" data-vv-rules="required|confirmed:password" class="form-control" type="password" placeholder="Confirm Password"> 
      </div> 
      <div class="modal-footer btn-center"> 
      <button type="submit" class="btn btn-default">Sign Up</button> 
      </div> 
     </form> 

和脚本是:

export default { 
data() { 
return { 
register: { 
     mobile_number: '', 
     email: '', 
     password: '', 
     confirm_password: '', 
     }, 
} 
}, 
    methods: { 
signUp() { 
     this.$validator.validateAll().then((result) => { 
     }); 
     axios.post(config.apiDomain+'/Home',this.register).then(response=>{ 
     }); 
    } 
}, 
} 

而且还进口V型验证在main.js为,

import VeeValidate from 'vee-validate'; 

Vue.use(VeeValidate); 

但是,如果我们在输入框里面输入任何内容,它抛出的错误作为

Uncaught Error: [vee-validate] No such validator '12312321' exists. 

力所能及的事我内的任何输入框中输入的,它显示了同样的错误。请帮我解决这个问题。

回答

2

代码错误地指定了验证规则。例如这里:

<input v-model="register.mobile_number" v-validate="register.mobile_number" data-vv-rules="required" class="form-control" type="number" placeholder="Mobile Number"> 

的代码是说,验证规则应该是无论是在register.mobile_number因为这一点:v-validate="register.mobile_number"

而应该指定要使用的验证规则的名称。

<input v-model="register.mobile_number" v-validate="'required'" class="form-control" type="number" name="Mobile Number" placeholder="Mobile Number"> 

请注意,我说name="Mobile Number",因为无论namedata-vv-name是必需的,我删除data-vv-rules,因为它是deprecated

所有这些都直接在文档中的basic example中介绍。

+0

密码确认输入框不起作用,无论我们给出什么值确认密码,它不验证.. –

+0

@ManiRaj这是一个单独的问题。考虑到我的建议后,不知道如何设置代码,但很难回答。 – Bert

+0

我已经从你的答案进行了更改,但密码验证不起作用,并且我更新了我的代码在我的问题中。 –