ElementUI组件Dialog弹窗再次打开表单清除上次表单的必填验证提示

59 篇文章 0 订阅
33 篇文章 0 订阅

ElementUI组件Dialog弹窗再次打开表单清除上次表单的必填验证提示

1.实现效果

在这里插入图片描述

2.解决方法

      <div class="dialogArea">
        <el-dialog title="新建分类" :visible.sync="dialogFormVisible" width="500px">
          <el-form :model="addSortform" ref="addSortform" :rules="rules" label-width="auto" label-position="left">
            <el-form-item label="分组名称" prop="categoryName">
              <el-input maxLength="10" v-model.trim="addSortform.categoryName" autocomplete="off"></el-input>
            </el-form-item>
            <el-form-item label="上级分组" prop="parentId">
              <el-select v-model="addSortform.parentId" placeholder="请选择上级目录">
                <el-option v-for="item in prelists" :key="item.id"
                  :label="tem.label" :value="item.id"></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="备注" prop="remark" class="endItem">
              <el-input type="textarea" v-model="addSortform.remark" :autosize="{ minRows: 3, maxRows: 25 }"
                :maxlength="255" clearable></el-input>
            </el-form-item>
          </el-form>
          <div slot="footer" class="dialog-footer">
            <el-button @click="dialogFormVisible = false">取 消</el-button>
            <el-button type="primary" @click="saveAddsort" class="saveAddBtn">保 存</el-button>
          </div>
        </el-dialog>
      </div>

//js
  watch: {
    //监听新建分类弹窗是否显示控制位
    dialogFormVisible(newVal, oldVal) {
      if (newVal == true) {
        //这里这样写才能拿到this.$refs["addSortform"]实例
        this.$nextTick(() => {
          this.$refs["addSortform"].resetFields();
        });
      }
    },
  },
methods:{
//触发dialog显示方法
    addSort() {
      this.treeFlag = 1;
      followupSortList().then((res) => {
      /.../
        this.dialogFormVisible = true;
      });
    },
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ElementUIDialog组件弹出后默认是不会触发内部表单验证的。如果我们想要在点击Dialog的确定按钮时进行表单验证,我们可以通过自定义的方式实现。以下是一种可能的解决方案: 首先,我们需要在Dialog的确定按钮上添加一个点击事件,用来触发表单验证。我们可以使用ElementUI的自定义按钮属性来实现。代码如下: ```html <el-dialog :visible.sync="dialogVisible" title="Dialog标题" width="30%"> <el-form ref="myForm" :model="formData" :rules="formRules"> <!-- 表单内容 --> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取消</el-button> <el-button type="primary" @click="validateForm">确定</el-button> </div> </el-dialog> ``` 在这里,我们添加了一个点击事件`@click="validateForm"`,该事件会在点击确定按钮时触发。 然后,在Vue的方法中定义`validateForm`方法来进行表单验证。代码如下: ```javascript methods: { validateForm() { this.$refs.myForm.validate(valid => { if (valid) { // 表单验证通过,可以执行其他操作 // 例如提交表单数据等 // ... // 关闭Dialog this.dialogVisible = false; } }); } } ``` 在这个方法中,我们使用`this.$refs.myForm.validate`方法来对表单进行验证。如果表单验证通过,也就是`valid`为`true`,我们就可以执行需要的操作,比如提交表单数据,并关闭Dialog。如果表单验证不通过,`valid`为`false`,则不执行其他操作,仅显示验证错误信息。 综上所述,我们通过在Dialog的确定按钮上添加点击事件,并在事件的方法中使用`this.$refs.myForm.validate`方法来触发表单验证,从而实现了在ElementUIDialog中点击确定按钮触发表单验证的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值