Caleb_Cai 2021-11-23 09:35 采纳率: 0%
浏览 39

vue中v-model + element-ui form 表单验证如何实现?

现在input v-model 绑定的是vuex中的mapstate 所有的data数据都是存在了sate里面 ,现在需要通过prop进行验证。 如果使用普通的方法进行验证就会报错。找不到我prop里的属性。一直为空的。

// from 部分
  <el-form ref="form" :model="form" label-width="80px"    > 
      <el-form-item label="姓名"    >
          <el-input v-model="form.information.name"></el-input>
      </el-form-item>
//计算属性部分 v- model 是 通过解构 mapState 中的form 来的 
computed: {
    ...mapGetters(["getUserLshInfo"]),
    ...mapState([
      "form",
      "defaultData",
      "addresSheng",
      "shengValue",
      "addressShi",
      "shiValue",
      "addressXian",
      "xianValue",
      "addressXiang",
      "xiangValue",
      "addressCun",
      "cunValue",
    ]),
  },
//数据为vuex中state里面的
 form: {
    information:{
      name:''
    }
  }


 
如果在el-item-form 中加入 prop= 'name' 的 rules 检测 name 就是一直是空的,
我之前是试过把 prop 改为 和v-model一样但是就报找不到
我需要做成 验证vuexstate中的属性
  • 写回答

1条回答 默认 最新

  • 关注

    参考:

    <template>
      <el-dialog
        :title="!dataForm.areaId ? '新增' : '修改'"
        :close-on-click-modal="false"
        :visible.sync="visible"
        width="50%"
      >
        <el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="100px" style="width:95%;" @keyup.enter.native="dataFormSubmit()">
          <el-row>
            <el-col :span="24">
              <el-form-item label="考区名称" prop="areaName">
                <el-input v-model="dataForm.areaName" placeholder="请输入考区名称" />
              </el-form-item>
            </el-col>
            <el-col :span="24">
              <el-form-item label="排序" prop="seq">
                <el-input v-model="dataForm.seq" placeholder="请输入排序" />
              </el-form-item>
            </el-col>
          </el-row>
        </el-form>
        <span slot="footer" class="dialog-footer">
          <el-button type="danger" @click="visible = false">取 消</el-button>
          <el-button type="primary" @click="dataFormSubmit()">确 定</el-button>
        </span>
      </el-dialog>
    </template>
    <script>
    import { getInfo, add, edit } from '@/api/sys/area'
    export default {
      data() {
        return {
          visible: false,
          dataForm: {
            areaId: '',
            areaName: '',
            seq: '1'
          },
          dataRule: {
            areaName: [
              { required: true, message: '考区名称不能为空', trigger: 'blur' }
            ],
            seq: [
              { required: true, message: '排序不能为空', trigger: 'blur' }
            ]
          }
        }
      },
      methods: {
        init(id) {
          this.dataForm.areaId = id
          this.visible = true
          this.resetForm('dataForm')
          this.dataForm.seq = 1
          if (this.dataForm.areaId) {
            getInfo(id).then(res => {
              if (res && res.code === 200) {
                this.dataForm.areaId = res.data.areaId
                this.dataForm.areaName = res.data.areaName
                this.dataForm.seq = res.data.seq
              }
            })
          }
        },
        // 表单提交
        dataFormSubmit() {
          this.$refs['dataForm'].validate((valid) => {
            if (valid) {
              const param = {
                'areaId': this.dataForm.areaId,
                'areaName': this.dataForm.areaName,
                'seq': this.dataForm.seq
              }
              if (!this.dataForm.areaId) {
                add(param).then(res => {
                  this.returnResponse(res)
                })
              } else {
                edit(param).then(res => {
                  this.returnResponse(res)
                })
              }
            }
          })
        }
      }
    }
    </script>
    
    
    
    评论

报告相同问题?

问题事件

  • 修改了问题 11月23日
  • 修改了问题 11月23日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 Flask应用部署到阿里云服务器失败,无法访问网页,问题出在哪里?
  • ¥15 计算个体的IBS遗传距离
  • ¥15 有什么好的直流步进减速电机42的厂家推荐,保持力矩达到0.3N.M
  • ¥15 一道蓝桥杯的题,请问我错在哪里
  • ¥15 关于#android问题,xposed模块找不到so
  • ¥15 UE5.4.2创建C++项目成功,但是编译失败
  • ¥15 华为手机备份nas,airdisk,遇到的空间不足问题。求个详细的解决方案。
  • ¥20 Cknife无法使用
  • ¥15 这个结构体为什么会出错呢?
  • ¥15 ROH绘图及近交系数的计算