标签:vant 标签 button submit 表单 提交 message
使用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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。