使用element-ui表单提交值为空的问题

本文详述了使用Element UI的form组件时遇到的表单提交参数为空的问题及解决方案。作者发现,由于异步请求与表单重置事件的执行顺序不当,导致参数在请求完成前被清空。通过调整代码逻辑,将表单重置操作置于请求成功或失败的回调中,有效避免了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

再用element的form表单提交时参数一直为空,找了半天最后发现是因为在提交表单后有一个还原表单的事件,这个事件写道了提交请求的方法外面,但是因为是ajax异步提交导致请求未完成参数就置空了,再此记录一下:

 // 保存按钮
      handleSave(updateForm){
        var _this= this;
        const set = this.$refs['updateForm'];
        set.validate((valid) => {
          if (valid) {
            updataCondition(_this.updateForm).then(response => {
                if(response.rel){
                    this.$notify({
                      title: '成功',
                      message: '审核成功!',
                      type: 'success',
                      duration:2000
                    });
                    //将表单值初始化
                    this.$refs['updateForm'].resetFields();
                     // 给父页面传递信息,关闭弹窗
                    PubSub.publish('dialogVisible',{flag:"check",refresh:true});
                }else{
                    this.$notify.error({
                      title: '错误',
                      message: '审核失败!',
                      duration:2000
                    });
                    //将表单值初始化
                    this.$refs['updateForm'].resetFields();
                     // 给父页面传递信息,关闭弹窗
                    PubSub.publish('dialogVisible',{flag:"check",refresh:false});
                }
            });
            this.isAuditTime = false;
          } else {
            return false;
          }
        });
        
      },

主要是下面这一句,这一句要写在请求成功或失败中就行了:

 //将表单值初始化
 this.$refs['updateForm'].resetFields();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值