2011-07-31 39 views
6

我正在使用jQuery验证插件进行表单验证。它很好用,但是如果DOM没有被完全加载,并且你点击了提交按钮,那么文档将忽略验证并进入一个在“action”属性中指定的页面。是否有可能阻止提交按钮提交,直到DOM加载?是否可以阻止提交按钮提交,直到DOM加载?

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

然后在JavaScript中,改变要“激活”,当你准备的形式onsubmit处理程序:

回答

6

如果你生成你像这样的提交按钮:

<input type="submit" id="submit" value="submit" disabled="disabled"/> 

然后,你可以把这个在您的$(document).ready(之后的验证插件已经被初始化:

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

演示:http://jsfiddle.net/nZVrs/

+0

这就是我会做的。 – ninetwozero

+1

该解决方案的缺点是,您的表单不适用于JavaScript。 – Peter

+0

也可以通过在文本输入上按ENTER键来提交表单,因此您可能还需要禁用表单中的所有输入... –

4

你可能喜欢的东西最初发出的形式。

0

DOMContentLoaded被解雇之前,如何提交表格?只是好奇?

如果它是window.onload我们在谈论然后我会理解,因为一个页面可能需要一些时间来完全加载(尤其是如果内容以前没有缓存),但DOMContentLoaded

在大多数情况下,它在页面开始渲染后触发很快,几乎不可能很快并提交表单。