0

只是一个简单的文本框校验,但始终无法通过校验,几乎与官网 demo 一样,只是换了一下变量名,我实在看不出来问题在哪,麻烦大家帮我看一下。
代码再此 https://jsfiddle.net/2hxzt2yu/2/

<script async src="//jsfiddle.net/2hxzt2yu/2/embed/"></script>

3个回答

1

已采纳

关键在于,

  • form的model与form的数据的命名一致, form的rules与form的检查规则的命名一致

  • 条目的prop=formData.key=formRules.key

  • input的v-model就不用解释了吧

<el-form :model="user" :rules="userrule" ref="ruleForm" label-position="right">
    <el-form-item label="姓名" prop="name">
      <el-input v-model="user.name"></el-input>
    </el-form-item>
user: {
  name: ''
},
userrule: {
  name: [
      {required: true, message: '请输入', trigger: 'blur' }
  ]
}
0

模板中 prop="name" ,实例里面验证规则的键改为 name:,保证一致才可以验证通过

0

submit函数需要传入参数。<el-button @click="submit('ruleForm')">提交</el-button>

methods: {
            submit(ruleForm) {
           this.$refs.ruleForm.validate((valid) => {
          if (valid) {
            alert('submit!');
          } else {
            console.log('error submit!!');
            return false;
          }
        });
      }

记得传入的参数是字符串格式:'ruleForm',值为这上面ref的值:<el-form :model="user" :rules="userrule" ref="ruleForm" label-position="right">

撰写答案