ant-design-vue中from表单涉及父子组件表单验证.....

当子组件是一个from表单时,借用了父组件里的一“按钮"来验证(接口在父组件里),我是这么做的…

子组件部分代码
 <a-form :form="form" :label-col="{ span: 6 }" :wrapper-col="{ span: 18 }">
        <a-form-item label="用户名">
          <a-input
            placeholder="请输入"
            style="width: 120px; height: 32px; margin-top: 3px"
            @change="handleChangeUser"
            v-decorator="[
              'loginUser',
              { rules: [{ required: true, message: '请输入' }] },
            ]"
          >
          </a-input>
        
        </a-form-item>
      </a-form>
父组件部分代码
       <div>
         <a-steps :current="current">
            <a-step
              v-for="item in steps"
              :key="item.title"
              :title="item.title"
            />
          </a-steps>
          <div  class="steps-content"
              v-else-if="isTool == 'tool'"
              :style="{ display: current === 1 ? 'block' : 'none' }"
          >
          //子组件------
            <tool-config
              v-on:paramsHadoop="paramsHadoop"
              ref="parentOrder"//需要去调用子组件定义的方法
            ></tool-config>
          </div>
          <div class="steps-action">
            <a-button
              v-if="current < steps.length - 1"
              type="primary"
              @click="next"
              >下一步
            </a-button>
            <a-button
              v-if="current == steps.length - 1"
              type="primary"
              @click="hanldeDone"
              >完成</a-button
            >
            <a-button v-if="current > 0" style="margin-left: 8px" @click="prev"
              >上一步</a-button
            >
          </div>
      </div>

如下图,触发“完成”按钮, 要实现子组件的内容传到父组件且可以校验

在这里插入图片描述

子组件里定义方法

   /**
     *@description:表单验证--父组件调用
     *@return promise对象
    */
    submitForm() {
      var that = this;
      return new Promise(function(resolve, reject) {
        that.form.validateFields((err, values) => {
          if (!err) {
            resolve(values);
           //同时将父组件接口需要的参数传过去
            that.$emit(
              "spot",
              that.List,
            );
          }
        });
      });
    }

父组件里点击按钮里操作

 this.$refs.parentOrder.submitForm().then((valid) => {
          if (valid) {
          //valid就是resolve传过来的form表单里的值
          //这里面就可以接下来的操作了。。。。。
          }
   })

整个大概的流程就是酱紫的…(●’◡’●)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值