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()方法只是将表单的各项还原为初始值。如果我们在页面加载成功之后,先点击编辑回显数据,这时表单已被赋值。那么这时表单的初始值就是有值的并不是空,所以在关闭弹窗之后,我们再点新增,发现表单的输入框依然还存在值。那么这样就是有问题的。

  • 相关阅读:
    [翻译] 为什么Uber的数据库从Postgres 切换到 MySql
    Salesforce.com Object Query Language (SOQL) 示例
    SalesForce 入门
    jeasyui datagrid 使用记
    2- 计算机的组成以及VMware使用
    1.计算机三大操作系统介绍
    01- Java概述
    01- Sublime的工具安装以及使用
    01- web测试快速入门
    02- Java搭建环境搭建
  • 原文地址:https://www.cnblogs.com/mmzuo-798/p/15218182.html
Copyright © 2011-2022 走看看