Safari:在输入时禁用表单提交? [复制]

Posted

技术标签:

【中文标题】Safari:在输入时禁用表单提交? [复制]【英文标题】:Safari: Disable form-submit on Enter? [duplicate] 【发布时间】:2010-12-26 18:08:45 【问题描述】:

以下问题:

在我的网站上,我有两种形式。一个用于登录,一个用于主要数据。 我在主窗体中只有一个提交按钮。 loginform在mainform submit上通过js提交。

这很好用。但在 Safari 中,当我的焦点位于登录表单内时,我可以按 Enter。这将发送没有主窗体的登录表单,所以我收到一个错误(它会将我重定向到我在提交时请求的 json 的普通视图)。

是否可以禁用“按回车”操作?

【问题讨论】:

在研究这个问题时,我偶然发现了这个怪癖的更多背景信息(注意 RESOLVED WONTFIX 状态):bugs.webkit.org/show_bug.cgi?id=16886 【参考方案1】:

如果您说无论如何都使用 JS 提交表单中的数据,为什么不使用 <form onsubmit="return false;"> 取消浏览器的默认行为。这样,无论您按下提交按钮还是在输入中按下回车,都不会发送。 onsubmit="return false" 不应干扰从 JS 调用表单上的 submit() 方法。

【讨论】:

【参考方案2】:

您可以为您的登录表单添加 onsubmit 处理程序。此处理程序可以帮助您防止提交表单(例如将光标移动到表单中的下一个空白字段);

<form onsubmit="do_some_function(); return false;" ></form>

要防止表单提交,请在 onsubmit 处理程序中返回 false;

【讨论】:

以上是关于Safari:在输入时禁用表单提交? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如果在浏览器中禁用 javascript,如何在表单提交时弹出 javascript 和操作? [复制]

如何使用useFormik在输入时禁用表单提交?

远程表单提交禁用的输入

禁用提交 btn 时,预填充的表单输入元素不接受第一个输入

禁用 Webkit 表单输入阴影 [重复]

如何防止表单提交在字段上点击输入? [复制]