javascript - Vue中使用事件修饰符.prevent实现无重定向提交表单

标签 javascript html vue.js

我在我的应用程序中使用 Vue,我想知道如何提交表单但避免重定向。 根据Vue官方文档可以通过以下方式实现:

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

这是我的表单部分:

<form class="myForm" action="/page" method="post" @submit.prevent="onSubmit">
    <input name="email" type="email" placeholder="e-mail" v-model="email">
    <button @click="myFunction()">

从某种意义上说,页面不再被重定向,但我收到一条错误消息,指出 onSubmit 方法未定义。所以我不明白的是我应该如何定义它。另一方面,我可以只写 @submit@prevent 但据我所知,它完全阻止了提交,这不是我想要的。 如果没有 ajax、axios 和这类技术,是否有正确的方法来做到这一点? 我想要的是执行 myFunction 并提交表单,但我想避免重定向。

最佳答案

onSubmit应该是你的 methods 中的一个函数vue 实例上的属性。即

methods: {
  onSubmit () {
    // DO Something
  }
}

然后正如文档所说,使用 <form v-on:submit.prevent="onSubmit"></form>是正确的。我在我的应用程序中使用它。

请参阅下面的示例。在没有刷新页面的情况下单击按钮后,消息将发生变化。

var vm = new Vue({
  el: '#app',
  data () {
    return {
      test: 'BEFORE SUBMIT'
    }
  },
  methods: {
    onSubmit () {
      this.test = 'AFTER SUBMIT'
    }
  }
});
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app">
  {{test}}
  <form v-on:submit.prevent="onSubmit">
    <button>Submit!</button>
  </form>
</div>

关于javascript - Vue中使用事件修饰符.prevent实现无重定向提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48028718/

相关文章:

javascript - 访问多返回数据结构中的 JSON 对象

javascript - Django 中的空 queryDict

javascript - 用于在文件中进行更改的客户端脚本

javascript - 整体选择按钮

vue.js - Vue-tables-2(vuex) react 性不起作用

javascript - 如何在vuejs中导入node_modules的所有css

javascript - 调用方法时页面刷新(不需要)

javascript - 对象内部的对象转换为单个对象

javascript - 水平滚动,粘性 div 保持在左边框

php - 如何循环浏览页面?