zoukankan      html  css  js  c++  java
  • element的表单重置表单并用clearValidate消除校验

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

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

    常见问题:

    我只想消除某个 表单项的校验
    clearValidate()里以数组形式 填写表单字段的 prop属性值,

    if (sn != null && sn != "") {
        setTimeout(function () {
            app.$refs['formMsg'].clearValidate(['sn']);
        },30);
    }

    为什么消除校验不生效
    需要用setTimeout包裹
    重置表单为什么不用resetFields()
    resetFields()方法只是将表单的各项还原为初始值。如果我们在页面加载成功之后,先点击编辑回显数据,这时表单已被赋值。那么这时表单的初始值就是有值的并不是空,所以在关闭弹窗之后,我们再点新增,发现表单的输入框依然还存在值。那么这样就是有问题的。

  • 相关阅读:
    币值转换
    打印沙漏
    秋季学期总结
    在人生道路上对我影响最大一位老师
    自我介绍
    python笔记十五(面向对象及其特性)
    python笔记十四(高阶函数——map/reduce、filter、sorted)
    python笔记十三(高阶函数、装饰器)
    python笔记十二(匿名函数)
    Python笔记十一(迭代器)
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/15218182.html
Copyright © 2011-2022 走看看