如何仅在调用函数时提交Vue 3中的登出表单?
实现Vue 3中仅调用指定函数时提交登出表单
你当前的代码已经通过@submit.prevent阻止了表单的默认提交行为,接下来只需要在handleSignOut函数中添加判断逻辑,仅当满足条件时手动触发表单提交即可,以下是两种可行方案:
方案一:通过事件对象操作表单
不需要修改模板,直接在函数中通过事件对象获取表单元素,添加判断后提交:
const handleSignOut = function (e) { // 这里替换为你的自定义判断条件,比如用户确认操作 const needSubmit = confirm("确定要登出吗?"); if (needSubmit) { // 触发表单默认提交 e.target.submit(); } }
方案二:使用Vue ref获取表单元素
先给表单添加ref属性:
<form ref="signOutForm" @submit.prevent="handleSignOut" method="post" action="/logout"> <input type="hidden" name="_token" :value="csrf"> <button type="submit"> Sign out </button> </form>
然后在脚本中通过ref获取表单,添加判断后提交:
import { ref } from 'vue'; const signOutForm = ref(null); const handleSignOut = function () { // 自定义判断条件,满足时提交 const needSubmit = true; // 替换为你的实际判断逻辑 if (needSubmit && signOutForm.value) { signOutForm.value.submit(); } }
两种方案的核心都是:先阻止默认提交,再在指定函数中通过判断决定是否手动触发表单的原生提交行为,以此实现仅调用该函数且满足条件时才提交登出表单。
内容的提问来源于stack exchange,提问作者Qais Wardag
相关产品推荐
相关产品推荐

