2009-12-15 84 views
10

以下问题:Safari:禁用表单提交输入?

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

这工作正常。但在Safari中,我可以按Enter键,而我的焦点在登录表单内。这将发送没有mainform的登录表单,所以我得到一个错误(它将我重定向到我提交请求的json的普通视图)。

是否可以禁用“on enter pressed”操作?

+0

在研究这个问题的时候,我偶然发现了这个怪癖的更多上下文(注意RESOLVED WONTFIX状态):https://bugs.webkit.org/show_bug.cgi?id = 16886 – 2015-01-20 22:58:31

回答

22

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

+1

谢谢! 现在它的工作! – Newbie 2009-12-15 11:43:03

+1

非常好,干净的答案。 – Mattis 2010-08-07 01:06:38

2

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

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

为了防止形式从submition,在您的onsubmit处理程序中返回false;