You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue中console.log重复触发两次的问题求助

Vue中方法重复触发的问题解决

你的问题出在表单和提交按钮同时绑定了触发getLogin的事件:

  • form标签上用了@submit.prevent="getLogin",点击type为submit的按钮时,会触发form的submit事件
  • 同时按钮自身又绑定了v-on:click="getLogin",点击按钮时直接触发click事件

这两个事件会先后执行,导致getLogin被调用两次,console.log自然输出两次。

解决方法(二选一即可)

方法1:移除按钮的click绑定(推荐)

因为type="submit"的按钮点击后默认会触发form的submit事件,不需要额外绑定click,保留form的submit绑定即可:

<template>
  <div>
    <form @submit.prevent="getLogin" id="form">
      <div class="mb-4">
        <input
          name="text"
          type="text"
          placeholder="1547089"
          v-model="loginForm.text"
          id="order-id"
          required
          minlength="5"
        />
      </div>
      <div>
        <input
          name="password"
          type="password"
          placeholder="****"
          v-model="loginForm.password"
          required
          minlength="4"
          maxlength="4"
        />
      </div>
      <div id="div-submit">
        <button
          type="submit"
          v-bind:disabled="loginForm.password.length < 4"
          id="submit"
        >
          提交
        </button>
      </div>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      loginForm:{
        text: '',
        password: ''
      }
    }
  },
  methods: {
    getLogin(){
      console.log("Posielam do konzole", this.loginForm)
    }
  }
}
</script>

方法2:移除form的submit绑定

如果想通过按钮的click触发逻辑,把form上的@submit.prevent="getLogin"去掉即可:

<template>
  <div>
    <form id="form">
      <!-- 其余表单内容不变 -->
      <div id="div-submit">
        <button
          type="button" <!-- 建议把type改成button,避免默认submit行为干扰 -->
          v-on:click="getLogin"
          v-bind:disabled="loginForm.password.length < 4"
          id="submit"
        >
          提交
        </button>
      </div>
    </form>
  </div>
</template>

内容的提问来源于stack exchange,提问作者Roman Šnìrer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 08:20:32