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

2022/3/30 23:22:04

本文主要是介绍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表单中的提交中的一些坑的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程