VueJs - 表单提交时的 PreventDefault()

2024-02-21

我需要以编程方式提交表单,但我需要它preventDefault以及。

现在我有以下内容:

submit() {
  this.$refs.form.submit()
}

它工作正常,但我无法阻止提交的默认设置,最终刷新页面。


简短回答

您可以添加.prevent修饰符为@submit(或任何其他v-on你正在使用),像这样:

<form @submit.prevent="myMethod">
  <button type="submit"></button>
</form>

在提交表单的情况下,这将阻止刷新页面的默认行为。

长答案

有多种方法可以修改事件。

来自 Vue 3 文档 https://v3.vuejs.org/guide/events.html#event-modifiers:

这是一个很常见的需要打电话event.preventDefault() or event.stopPropagation()内部事件处理程序。虽然我们可以做到这一点 很容易在方法内部,如果方法可以纯粹是更好 关于数据逻辑,而不必处理 DOM 事件细节。

为了解决这个问题,Vue 提供了 v-on 的事件修饰符。记起 该修饰符是用点表示的指令后缀。

<!-- the click event's propagation will be stopped -->
<a @click.stop="doThis"></a>

<!-- the submit event will no longer reload the page -->
<form @submit.prevent="onSubmit"></form>

<!-- modifiers can be chained -->
<a @click.stop.prevent="doThat"></a>

<!-- just the modifier -->
<form @submit.prevent></form>

<!-- use capture mode when adding the event listener -->
<!-- i.e. an event targeting an inner element is handled here before being handled by that element -->
<div @click.capture="doThis">...</div>

<!-- only trigger handler if event.target is the element itself -->
<!-- i.e. not from a child element -->
<div @click.self="doThat">...</div>

另外一个选择 https://v3.vuejs.org/guide/events.html#methods-in-inline-handlers:

有时我们还需要在内联语句处理程序中访问原始 DOM 事件。您可以使用特殊的 $event 变量将其传递到方法中:

<button @click="warn('Form cannot be submitted yet.', $event)">
  Submit
</button>
// ...
methods: {
  warn: function (message, event) {
    // now we have access to the native event
    if (event) {
      event.preventDefault()
    }
    alert(message)
  }
}

干杯:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VueJs - 表单提交时的 PreventDefault() 的相关文章

随机推荐

  • korn 和 bash shell 之间的区别[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我对 Unix 完全陌生 目前 我被要求了解这两个方面康壳 ksh and bash shell 有人可以给我简要介绍一下这两者吗 是这个
  • Camera2cameraManager.openCamera在某些设备上有时会出现异常

    我有一个录制视频的应用程序 目前安装量约为 80K 超过 100K 下载量 Crashlytics 统计数据似乎不错 无崩溃用户 99 66 Google Play 上的评分也不错 4 5 但对于我的一些用户来说 仍然可能会发生下一个错误
  • 如何让 SwiftUI 的 .onContinueUserActivity 工作

    我很好奇 有没有人设法让 SwiftUI 的 onContinueUserActivity 工作 看着来自苹果的示例代码 https developer apple com documentation swiftui restoring y
  • 实体对象不能被 IEntityChangeTracker 的多个实例引用

    我使用 EF 作为 ORM 我处置objectContext根据每一个要求 我将实体保存在缓存层中 因为我的服务获得大量流量 我有时会收到错误objectContext already disposed对于我从缓存中获取的一些实体 我已将此
  • ## 预处理器运算符有哪些应用以及需要考虑的问题?

    正如我之前的许多问题中提到的 我正在使用 K R 目前正在使用预处理器 更有趣的事情之一是我之前学习 C 的尝试中从未了解过的事情 预处理器运算符 根据 K R 的说法 预处理器运算符 提供了一种连接实际的方法 宏展开期间的参数 如果一个
  • 组件返回失败代码:0x80004005

    仅当我执行此操作时 有时才会触发此错误XMLHttpRequest uncaught exception Exception Component returned failure code 0x80004005 NS ERROR FAILU
  • Ruby - 是否可以将方法别名为安全导航运算符

    Ruby 2 3 引入了安全导航运算符 但我发现它的语法过于离散 在简单扫描代码时很容易错过 相反 我更喜欢以下语法try因为它看起来更加明显和有意 所以我的问题是在 Ruby 2 3 中 有没有办法为安全导航运算符添加别名或猴子修补方法
  • 从Python调用Matlab函数

    我有一个项目 其中有一个一个 matlab 代码 我必须运行 Django 我尝试安装 Mlabwrap 但它给了我以下错误 Traceback most recent call last File
  • 应用程序不再可用

    在移动设备上安装应用程序后 并将设备时间更改为一周前 并尝试打开应用程序它说 MyAppName Is No Longer Available 任何遇到此问题的人请告诉我 您的意见非常重要 我们有很多理由这样做 如果您没有有效的开发者许可证
  • 使用 tweepy 保存推文全文

    我是一个Python新手程序员 我在尝试使用以下命令提取一系列推文的文本时遇到问题tweepy并将其保存到文本文件 我省略了身份验证和其他内容 search api search hello count 10 textlist for i
  • 解析本地HTML文件

    我可以使用 PowerShell 解析 HTML 页面 PS gt foo Invoke WebRequest http example com PS gt foo Links Count 1 但是 如果我下载该页面 PS gt Invok
  • 结构错误中的联合

    我有以下结构 struct type1 struct type2 node union element struct type3 e int val 初始化指针时 f指向一个实例type1并做类似的事情 f element gt e甚至只是
  • 在 MATLAB 中更改 seqlogo 图形的 x 轴

    我正在制作大量seqlogos http www mathworks com access helpdesk help toolbox bioinfo ref seqlogo html以编程方式 它们有数百列宽 因此运行seqlogo通常会
  • 如何让网格为空白单元格绘制边框?

    我有一个 ItemsControl 它使用Grid as the ItemsPanelTemplate 并设置 Grid Column 和 Grid RowItemContainerStyle在网格中定位数据项 有没有办法将网格线添加到网格
  • CSS3 flexbox 调整垂直对齐元素的高度

    是否有可能使 item 1高度灵活可调 item 2高度 例如 if item 1高度是10 then item 2高度是90 if item 1高度是11 then item 2高度是89 所以根据内容 item 1我们应该调整它的大小
  • 时间:如何获得下周五?

    我怎样才能得到下周五乔达时间 http www joda org joda time API The LocalDate http www joda org joda time apidocs org joda time LocalDate
  • json_normalize JSON 文件,包含包含字典的多级列表(包含示例)

    最初是从上一个问题 https stackoverflow com questions 51236433 json normalize json file with list containing dictionary sample inc
  • HTML5 Canvas 描边未消除锯齿

    我只是想在画布上用粗的抗锯齿笔画画一个圆圈 圆圈按预期绘制 但笔划的边缘非常锯齿状 我一直读到 Chrome 强制抗锯齿 所以不知道该怎么办 Fiddle http jsfiddle net nipponese hWsxw http jsf
  • 类型错误:列表索引必须是整数或切片,而不是 str“转换字符”

    Number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 for n in range 0 20 print Number n 1 n InputNum3 input Number I
  • VueJs - 表单提交时的 PreventDefault()

    我需要以编程方式提交表单 但我需要它preventDefault以及 现在我有以下内容 submit this refs form submit 它工作正常 但我无法阻止提交的默认设置 最终刷新页面 简短回答 您可以添加 prevent修饰