vue表单同时提交两个表单并验证

表单提交同时验证两个

    <template>
    <div>
    <van-form ref="oneform">
         <van-field
          :value="username"
          name="username"
          label="用户名"
          required
          placeholder="用户名"
          :rules="[{ required: true,trigger:'onSubmit', message: '请填写用户名' }]"
         />
          <van-field
            :value="password"
            type="password"
            name="password"
            required
            label="密码"
            placeholder="密码"
            :rules="[{ required: true,trigger:'onSubmit', message: '请填写密码' }]"
          />
    </van-form>
    <van-form ref="twoform">
         <van-field
          :value="email"
          required
          name="email"
          label="邮箱"
          placeholder="邮箱"
          :rules="[{ required: true,trigger:'onSubmit', message: '请填写邮箱' }]"
         />
          <van-field
            :value="phone"
            name="phone"
            required
            label="手机号码"
            placeholder="手机号码"
            :rules="[{ required: true,trigger:'onSubmit', message: '请填写手机号码' }]"
          />
    </van-form>
         <div style="margin: 16px;">
           <van-button round block type="primary"  @click="allsubmit">一起提交</van-button>
         </div>
    </div>
</template>
<script>
export default {
    data(){
        return {
             username: '',
             password: '',
             email:'',
             phone:''
        }
    },
    methods:{
        allsubmit(){
            console.log(121)
            let vm=this
            let oneFormPromise=new Promise((resolve,reject)=>{
                  vm.$refs.oneForm
                  .validate()
                  .then(()=>{
                      resolve()
                  })
                  .catch((err)=>{
                      if(err && err.length>0 && err[0].name){
                          vm.$refs.oneForm.scrollToField(err[0].name,false)
                      }
                      reject()
                  })
            })

             let twoFormPromise=new Promise((resolve,reject)=>{
                  vm.$refs.twoForm
                  .validate()
                  .then(()=>{
                      resolve()
                  })
                  .catch((err)=>{
                      if(err && err.length>0 && err[0].name){
                          vm.$refs.twoForm.scrollToField(err[0].name,false)
                      }
                      reject()
                  })
            })

            Promise.all([oneFormPromise,twoFormPromise])
            .then(()=>{
                  
            })
            .catch(()=>{
                 
            })
        }
    }
}
</script><template>
    <div>
    <van-form ref="oneform">
         <van-field
          :value="username"
          name="username"
          label="用户名"
          required
          placeholder="用户名"
          :rules="[{ required: true,trigger:'onSubmit', message: '请填写用户名' }]"
         />
          <van-field
            :value="password"
            type="password"
            name="password"
            required
            label="密码"
            placeholder="密码"
            :rules="[{ required: true,trigger:'onSubmit', message: '请填写密码' }]"
          />
    </van-form>
    <van-form ref="twoform">
         <van-field
          :value="email"
          required
          name="email"
          label="邮箱"
          placeholder="邮箱"
          :rules="[{ required: true,trigger:'onSubmit', message: '请填写邮箱' }]"
         />
          <van-field
            :value="phone"
            name="phone"
            required
            label="手机号码"
            placeholder="手机号码"
            :rules="[{ required: true,trigger:'onSubmit', message: '请填写手机号码' }]"
          />
    </van-form>
         <div style="margin: 16px;">
           <van-button round block type="primary"  @click="allsubmit">一起提交</van-button>
         </div>
    </div>
</template>
<script>
export default {
    data(){
        return {
             username: '',
             password: '',
             email:'',
             phone:''
        }
    },
    methods:{
        allsubmit(){
            console.log(121)
            let vm=this
            let oneFormPromise=new Promise((resolve,reject)=>{
                  vm.$refs.oneForm
                  .validate()
                  .then(()=>{
                      resolve()
                  })
                  .catch((err)=>{
                      if(err && err.length>0 && err[0].name){
                          vm.$refs.oneForm.scrollToField(err[0].name,false)
                      }
                      reject()
                  })
            })

             let twoFormPromise=new Promise((resolve,reject)=>{
                  vm.$refs.twoForm
                  .validate()
                  .then(()=>{
                      resolve()
                  })
                  .catch((err)=>{
                      if(err && err.length>0 && err[0].name){
                          vm.$refs.twoForm.scrollToField(err[0].name,false)
                      }
                      reject()
                  })
            })

            Promise.all([oneFormPromise,twoFormPromise])
            .then(()=>{
                  
            })
            .catch(()=>{
                 
            })
        }
    }
}
</script>
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码De搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值