Element之表单校验

Element内置了表单校验功能,代码示例如下:

1.在form上定义rules字段,指向变量formRules。

<el-form
  ref="editForm"
  :model="record"
  :rules="formRules">
  <el-form-item
    label="报警原因"
    prop="alertReason"
    label-width="80px">
    <el-col :span="22">
      <el-input v-model="record.alertReason"/>
    </el-col>
  </el-form-item>
  <el-form-item
    label="原因分类"
    prop="reasonClassify"
    label-width="80px">
    <el-col :span="22">
      <el-radio v-model="radio" label="1">断电</el-radio>
      <el-radio v-model="radio" label="2">监测设备更换</el-radio>
      <el-radio v-model="radio" label="3">制冷或除湿设备故障 </el-radio>
      <el-radio v-model="radio" label="4">人为失误</el-radio>
      <el-radio v-model="radio" label="5">其他</el-radio>
      <el-input v-if="radio=='5'" v-model="record.reasonClassify" placeholder="请输入其他原因"/>
    </el-col>
  </el-form-item>
  <el-form-item
    label="处理方法"
    prop="processWay"
    label-width="80px">
    <el-col :span="22">
      <el-input v-model="record.processWay"/>
    </el-col>
  </el-form-item>
  <el-form-item
    label="备注"
    prop="remark"
    label-width="80px">
    <el-col :span="22">
      <el-input v-model="record.remark"/>
    </el-col>
  </el-form-item>
  <el-form-item align="center">
    <el-col :span="24">
      <el-button
        type="primary"
        @click.native.prevent="handleSubmit">
      <i class="fa fa-save"/> 确认处理</el-button>
    </el-col>
  </el-form-item>
</el-form>

2.在formRules变量中给每个prop指定校验规则。

data() {
    return {
      formRules: {
        alertReason: [{ required: true, message: '请输入报警原因', trigger: 'blur' }],
        reasonClassify: [{ required: true, message: '请输入原因分类', trigger: 'blur' }],
        processWay: [{ required: true, message: '请输入处理方法', trigger: 'blur' }],
        remark: [{ required: true, message: '请输入备注', trigger: 'blur' }]
      }
    }
}

3.在提交表单时进行校验。

handleSubmit() {
  this.$refs['editForm'].validate(valid => {
    if (valid) {
      this.$emit('after-edit')
    } else {
      return false
    }
  })
}

即可。

posted @ 2021-08-03 16:02  罗毅豪  阅读(931)  评论(0编辑  收藏  举报