Vue3+Element Plus 关于Dialog弹出Form表单,使用resetFields重置无效的解决

这篇具有很好参考价值的文章主要介绍了Vue3+Element Plus 关于Dialog弹出Form表单,使用resetFields重置无效的解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要参考了element-plus官方的表单重置按钮(官方Form例子任意reset按钮),然后试了试他的ref绑定,发现可以完美解决重置问题。

第一步:给Form表单绑定ref。绑定ref 的值为ref<FormInstance>();这里注意表单el-form-item必须有prop属性。

    <el-dialog v-model="data.userDialog" v-bind:title="data.userModelTitle">
      <el-form
        :inline="true"
        ref="modelForm"
        :model="data.user"
        label-position="right"
      >
        <el-form-item label="工号" label-width="70px" prop="userCode">
          <el-input v-model="data.user.userCode" />
        </el-form-item>
        <el-form-item label="姓名" label-width="70px" prop="userNameCn">
          <el-input v-model="data.user.userNameCn" />
        </el-form-item>
        <el-form-item label="手机号" label-width="70px" prop="phone">
          <el-input v-model="data.user.phone" />
        </el-form-item>
        <el-form-item label="部门" label-width="70px" prop="deptId">
          <el-cascader
            v-model="data.user.deptId"
            ref="deptCascader_add"
            :options="data.deptTree"
            :props="treeProps"
            @change="deptAddChange"
            filterable
            clearable
            class="select-width"
          />
        </el-form-item>
        <el-form-item label="角色" label-width="70px" prop="roleId">
          <el-select v-model="data.user.roleId" class="select-width">
            <el-option label="员工" :value="2" />
            <el-option label="临时推广员" :value="3" />
          </el-select>
        </el-form-item>
      </el-form>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="data.userDialog = false">取消</el-button>
          <el-button
            type="primary"
            @click="
              data.dialogSubmitStatus === 'add' ? addUser() : updateUser()
            "
          >
            提交
          </el-button>
        </span>
      </template>
    </el-dialog>
const data = reactive({
  userDialog: ref(false),
  dialogSubmitStatus: "",
  user: {
    id: null,
    userCode: "",
    userNameCn: "",
    deptId: "",
    roleId: null,
    phone: "",
    deptName: "",
    roleName: ""
  },
  userModelTitle: ""
});
const modelForm = ref<FormInstance>();
// 重置表单方法
const restForm = (formEl: FormInstance | undefined) => {
  formEl.resetFields();
};

2.第二步:在你想要重置的地方调用重置表单方法即可。本人是在新增或修改成功后再重置,这个看自己需求就行。具体调用如下:

const addUser = () => {
  console.log("新增:" + data.user);
  restForm(modelForm.value);
};
const updateUser = () => {
  console.log("修改:" + data.user);
  restForm(modelForm.value);
};

有谁知道FormInstance,可以说下。因为我遇到的时候只是为了解决问题,并没有深入了解,如果有错误的地方欢迎指出。文章来源地址https://www.toymoban.com/news/detail-813157.html

到了这里,关于Vue3+Element Plus 关于Dialog弹出Form表单,使用resetFields重置无效的解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3+element-plus Dialog对话框的使用 与 setup 写法的使用

    一. 传统写法不使用setup语法糖 方式一:通过 v-model 的方式实现子组件的显示与隐藏 父组件的内容 子组件内容 方式二:通过为元素绑定 ref 的方式实现子组件的显示与隐藏 父组件的内容 子组件内容 2. setup 语法糖写法 父组件 子组件 总结: 对于传统写法两种方式来看,都有

    2024年02月09日
    浏览(51)
  • Element Plus Form 动态表单自定义校验规则使用教程

    Element Plus,基于 Vue 3,面向设计师和开发者的组件库 Element Plus 官网:https://element-plus.org/zh-CN/ Element Plus Form 动态表单自定义效验规则,官网示例代码中没有,官网示例中的动态表单是固定的规则,本文讲解动态表单自定义规则的使用 目录 1、官网动态表单示例代码 2、表单自

    2024年01月18日
    浏览(51)
  • element-plus el-form 表单、表单验证 使用方法、注意事项

    element-plus@2.0.6 及之后的版本,表单验证不再是同步执行的了 另外, element-plus@2.1.4 及之后的版本,才可按照官方文档示例正常使用(使用的是两者的中间版本的话,最好先自行确认下正确的 上例中: 如果在“ 位置1 ”执行表单验证通过后的业务代码,可以去掉 async...await 如

    2024年02月05日
    浏览(59)
  • vue3 tsx element plus 中表单校验

    下边是统一校验  

    2024年02月08日
    浏览(38)
  • Vue3 element-plus表单嵌套表格实现动态表单验证

    部分效果图如下: 另表格有添加和删除按钮,点击提交进行表单验证。 首先data格式必须是对象包裹数组 给表单绑定form数据 表格绑定tableData数据 给表单项增加验证规则 rules对应data rules对象,prop对应表单字段(注意是表格里每一行对应的字段 forms.tableData[下标].key) prop的关

    2024年02月14日
    浏览(40)
  • (el-Form)操作(不使用 ts):Element-plus 中 Form 表单组件校验规则等的使用

    1、 Element-plus 提供 Form 表单组件情况: 其一、 Element-plus 自提供的 Form 代码情况为(示例的代码): 代码地址( 直接点击下面 url 跳转 ):https://element-plus.gitee.io/zh-CN/component/form.html#自定义校验规则 其二、页面的显示情况为: 2、目标想修改后的情况: // 此时虽然页面的样式有些变

    2024年02月13日
    浏览(50)
  • vue3+element-plus 表单输入框无法输入

    Element-Plus在进行reactive在对登录用户密码输入输入时失效,最后发现是el-form,在进行ref和model进行绑定的时候,绑定的属性名称都是一致的,导致界面无法输入,如下图所示都绑定的是:loginForm,代码入下图所示: 此时界面操作输入框,是无法编辑的: 而el-form修改的model=\\\"logi

    2024年02月11日
    浏览(45)
  • vue3 element-plus el-form的二次封装

    form表单的二次封装 vue3 element-plus el-form的二次封装 属性名 类型 默认值 说明 data Array [] 页面展示数据内容 onChange Function false 表单事件 bindProps Object {} 表单属性 formRef Object {} 表单ref ruleForm Object {} 数据

    2024年02月13日
    浏览(67)
  • Element Plus Dialog中无法获取表单焦点

    在Dialog组件中,默认插槽是Form表单,表单子项是input,发现Dialog组件弹出时无法获取input焦点。 需要使用俩次nextTick 使用定时器setTimeout也可以 input获取焦点老生常谈的问题,直接一个nextTick完活!这里不行的原因是Dialog里面嵌套是Form表单,Form表单又嵌套的input组件,所以需要俩

    2024年02月12日
    浏览(38)
  • Vue3+Element-Plus 实现用户列表页面的UI结构及动态加载表单功能 三一

    1.1 头部是一个面包屑 (Breadcrumb)导航区域 1.2 白色区域是一个卡片(Card)视图 1.3 卡片 (Card)视图中嵌套了   输入框(Input )、 按钮(Button)、 表单(Form)、分页(Pagination ) Breadcrumb 面包屑 | Element Plus (gitee.io) https://element-plus.gitee.io/zh-CN/component/breadcrumb.html  2.1.1 复制

    2023年04月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包