vue3 表单验证规则不生效 resetFields

前言:本人遇到这个问题是因为编辑对话框之后要清空里面得数据,但是使用传统得赋值为空是不起效果的,结合对话框的close事件清空。话不多说,上代码

  <!-- 新增弹出框 --> 
  <el-dialog v-model="state.dialogFormVisible" :title="state.title" @close="close">
    <el-form
      ref="ruleFormRef"
      :model="state.form"
      label="label position"
      label-width="130px"
      :rules="state.rules"
    >
      <el-form-item label="项目主审人账号" :label-width="formLabelWidth">
        <el-input v-model="state.userName" autocomplete="off" @blur="loseBlur" />
      </el-form-item>
    </el-form>
  </el-dialog>

<script setup>
 
// 编辑按钮事件 要放在nextTick里面 赋值的时候
function handleClick(value) {
  state.title = '编辑'
  state.dialogFormVisible = true
  const forms = state.form
  nextTick(() => {
    Object.keys(state.form).forEach((key) => {
      forms[key] = value[key]
      // console.log(forms[key], value);
    })
  })
}


// 弹出窗清空赋值
function close() {
  if (!ruleFormRef.value) return
  ruleFormRef.value.resetFields()
}

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Vue3中的表单验证规则的示例: ```javascript import { ref, reactive } from 'vue'; import { FormInstance, FormRules } from 'element-plus'; // 创建表单实例 const ruleFormRef = ref<FormInstance>(); // 表单数据对象 const ruleForm = reactive({ userId: "", email: "[email protected]", pwd1: "", pwd2: "", }); // 校验规则 const rules = reactive<FormRules>({ userId: [ { required: true, message: '请输入用户ID', trigger: 'blur' }, { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' } ], email: [ { required: true, message: '请输入邮箱', trigger: 'blur' }, { type: 'email', message: '请输入正确的邮箱格式', trigger: ['blur', 'change'] } ], pwd1: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 20, message: '长度在 6 到 20 个字符', trigger: 'blur' } ], pwd2: [ { required: true, message: '请再次输入密码', trigger: 'blur' }, { validator: (rule, value, callback) => { if (value !== ruleForm.pwd1) { callback(new Error('两次输入密码不一致')); } else { callback(); } }, trigger: 'blur' } ] }); // 在模板中使用表单和规则 <template> <el-form :model="ruleForm" :rules="rules" ref="ruleFormRef"> <el-form-item label="用户ID" prop="userId"> <el-input v-model="ruleForm.userId"></el-input> </el-form-item> <el-form-item label="邮箱" prop="email"> <el-input v-model="ruleForm.email"></el-input> </el-form-item> <el-form-item label="密码" prop="pwd1"> <el-input type="password" v-model="ruleForm.pwd1"></el-input> </el-form-item> <el-form-item label="确认密码" prop="pwd2"> <el-input type="password" v-model="ruleForm.pwd2"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> </template> // 提交表单 const submitForm = () => { ruleFormRef.value.validate((valid) => { if (valid) { // 表单验证通过,执行提交操作 // ... } else { // 表单验证失败,进行错误处理 // ... } }); }; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值