【问题标题】:Why do some forms auto-submit on clicking the enter button and others do not?为什么有些表单会在点击进入按钮时自动提交而有些则不会?
【发布时间】:2013-04-25 01:46:29
【问题描述】:

问题:

我从不指定提交按钮,因为我使用 ajax 提交我的表单,但有些表单无论如何都有自动提交功能。

背景:

在我的整个应用程序中,我有一些实例,当单击 Enter 按钮时会自动提交一个表单,而其他实例则不会执行任何操作。例如;有时我需要捕获“输入”按钮以获取自动提交,但有时它似乎只是自己发生而我没有找到模式。除了动态创建的表单似乎具有自动提交功能而静态表单没有?有没有其他人有类似的问题。

示例:

我的所有表单都删除了提交按钮,并且我没有指定目标或操作元素,如下所示。所有表单的数据都通过 AJAX 传输。

<form id="ajaxForm">
<input>
</form>
<button>ButtonOutSideForm</button>

没有寻找阻止自动提交的方法

我已经知道"onsubmit = return false"e.preventDefault. 我不是在寻找禁用自动提交的方法。我的问题是为什么它的存在似乎是任意的。谢谢。

【问题讨论】:

  • 只是一个想法,但是您是否查看过页面上的 tabindex(在 AJAX 之前和之后)?
  • 对不起...当然是tabindex。如果您仅将它们放在 AJAX 加载的表单上,我希望 Return 会完成表单。如果你在 AJAX 上和下都有它们,我不确定你会得到什么。
  • 另请注意,您实际上并不需要提交按钮来提交表单:tjvantoll.com/2013/01/01/… "因此,在没有提交按钮的表单中,如果只有一个输入,则会完成隐式提交现在。”
  • @Usman Mutawakil 文章的重点是没有单一的标准。规范说应该有基于表单中字段类型的不同功能。在您的情况下,该表单只有一个输入,因此无论您是否有提交按钮,它都会自动提交

标签: javascript html


【解决方案1】:

正如 LouD 指出的那样。如果表单只包含一个输入元素,某些浏览器会自动提交。Why does forms with single input field submit upon pressing enter key in input

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 2017-04-26
    • 2016-01-11
    相关资源
    最近更新 更多