提交按钮在DOM加载完成之前能否防止提交?

7
我正在使用jQuery验证插件进行表单验证。它工作得很好,但是如果DOM没有完全加载并且您点击提交按钮,则文档将忽略验证并转到表单“action”属性中指定的页面。有可能防止提交按钮在DOM加载之前提交吗?
3个回答

8
如果您像这样生成提交按钮:
<input type="submit" id="submit" value="submit" disabled="disabled"/>

在验证插件初始化后,您可以将以下代码放入$(document).ready(中:

$("#submit").prop("disabled", false);

Demo: http://jsfiddle.net/nZVrs/


1
这个解决方案的缺点是,如果没有启用 JavaScript,您的表单将无法使用。 - Peter
还可以通过在文本输入框上按下回车键来提交表单,所以你很可能也需要禁用表单中的所有输入框... - Doug English
我正在使用样式"display:none"隐藏表单,然后在文档准备就绪时使用fadeIn进行显示。同时还使用了加载动画gif。 - David Lefkon

5
您可以最初使用以下方式发出表单:

您可以最初使用以下方式发出表单:

<form ... onsubmit="return false;">
....
</form>

然后在JavaScript中,当你准备好时,更改要“激活”的表单的onsubmit处理程序。


0

DOMContentLoaded被触发之前,任何人如何成功提交表单?只是好奇?

如果我们谈论的是window.onload,那么我会理解,因为页面可能需要一些时间才能完全加载(特别是如果内容以前没有被缓存),但是DOMContentLoaded呢?

在大多数情况下,它在页面开始渲染后很快就会触发,以至于几乎不可能如此迅速地提交表单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接