element的表单重置表单并用clearValidate消除校验

3 篇文章 0 订阅

​ 在用Element的表单时,我们经常采用的el-dialog弹窗来填写表单内容,在新增和编辑时打开弹窗。有时我们在填写完数据没有保存有删掉了表单的内容,这时触发了表单的校验,然后我们关闭了弹窗。然后我们重新新增打开弹窗,发现之前的表单校验还没有消除,这时就需要在关闭弹窗的方法中进行处理。

handleClose:function(){
    var _this = this;
    _this.resetFormData();//重置表单,就是将表单的每一项置空
    _this.dialogVisible=false;//关闭弹窗
    setTimeout(function () {
        _this.$refs['formMsg'].clearValidate();//消除校验,这里的setTimeOut不能去掉,去掉之后会不生效
    },30);
},

常见问题:

  1. 我只想消除某个 表单项的校验
    在clearValidate()里以数组形式 填写表单字段的 prop属性值,
if (sn != null && sn != "") {
    setTimeout(function () {
        app.$refs['formMsg'].clearValidate(['sn']);
    },30);
}
  1. 为什么消除校验不生效
    需要用setTimeout包裹
  2. 重置表单为什么不用resetFields()
    resetFields()方法只是将表单的各项还原为初始值。如果我们在页面加载成功之后,先点击编辑回显数据,这时表单已被赋值。那么这时表单的初始值就是有值的并不是空,所以在关闭弹窗之后,我们再点新增,发现表单的输入框依然还存在值。那么这样就是有问题的。
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值