其他分享
首页 > 其他分享> > vant表单中的提交中的一些坑

vant表单中的提交中的一些坑

作者:互联网

使用vant表单时,当form表单的标签中有@submit时,就代表了表单的提交事件,在v2.0+版本中表单中所有的 van-button 按钮都算是提交表单,原因是浏览器中 button 标签 type 属性的默认值为submit,导致触发表单提交,但是在v3.0+版本中已经修改。所以如果你有标签中有submit,而van-button中又定义了点击事件,那么此时表单会提交2次!

比如

<template>
    <van-form @submit="onSubmit">
    <van-field v-model="username" name="用户名" label="用户名" placeholder="用户名"
      :rules="[{ required: true, message: '请填写用户名' }]"
    />
    <van-field v-model="password" type="password" name="密码" label="密码" placeholder="密码"
      :rules="[{ required: true, message: '请填写密码' }]"
    />
    <div style="margin: 16px;">
      <van-button round block type="info" native-type="submit" @click="onSubmit">提交</van-button>
    </div>
  </van-form> </template>
<script>
  export default {
    data() {
      return {
        username: '',
        password: '',
      };
    },
    methods: {
      onSubmit(values) {
        console.log('submit', values);
      },
    },
  };
</script>
native-type="submit" 属性的作用就跟 @click="onSubmit" 的作用一样,所以这里会提交两次表单!
解决办法:
  就是两者留其一即可

标签:vant,标签,button,submit,表单,提交,message
来源: https://www.cnblogs.com/cjxstart/p/16079192.html