“event.preventDefault();”不适用于提交按钮

问题描述 投票:0回答:1
javascript html submit form-submit preventdefault
1个回答
0
投票

您的 JavaScript 事件侦听器似乎正确阻止了默认的表单提交行为。但是,该问题可能与您在表单中使用

<button>
有关。当表单中有
<button>
且未指定
type
属性时,它默认为
"submit"
,导致表单提交。

在您的情况下,您正在阻止默认行为,但由于按钮具有默认的

type
"submit"
,因此它可能仍会触发表单提交。要解决此问题,请将按钮的
type
属性明确设置为
"button"
以防止其触发表单提交:

html

<form class="links-add-container hidden">
  <input
    type="text"
    class="links-name-input links-input"
    spellcheck="false"
    placeholder="Название ссылки"
  />
  <input
    type="text"
    class="links-link-input links-input"
    spellcheck="false"
    placeholder="Ссылка"
  />
  <button class="links-add-button button submit-button" type="button">
    <i class="fas fa-plus-square"></i>
  </button>
</form>

现在,使用

type="button"
,单击按钮将不会触发表单提交,并且
addLink
函数内的 JavaScript 代码应该按预期工作。

确保检查您的环境中是否有任何其他脚本或更改可能会影响行为,因为提供的代码应该会阻止提交表单。

© www.soinside.com 2019 - 2024. All rights reserved.