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:在输入时禁用表单提交? [复制]的主要内容,如果未能解决你的问题,请参考以下文章