我写了一个用于验证表单的jquery插件。它将自身绑定到$('element')。提交事件来触发验证(绑定在插件内部)。不知怎的,像这样:jquery,绑定次序/等待回调
// pseudocode
jquery.rdy {
$('form').validate(); //binding the plugin
}
里面的验证插件的我绑定验证,以提交
//pseudocode
[...]
$().submit(function() {
validating... //returning true/false
if (false) {
return false //prevent submit form
}
}
[...]
所以,现在我的问题是如何绑定(在其他JS脚本为例)其他的东西提交,但只是验证完成。
所以这样
$('form').submit(function() {
if (validate plugin was executed) {
//do stuff like check if validation was returning a true and now do something else
}
}
希望我descriped是正确的......我的英语不是最好的,但我tryed是混凝土S可能的(我希望,伪代码是一个正确的方法为好)
//编辑:使问题更具体: 我试图弄清楚一种方法来解决以下问题:(它非常出于上下文,但问题恰恰在那里) 我有一个提交事件,这取决于在另一个decleration中触发的某些代码。
$('element').submit(function() {
if ($(this).hasClass('foo')) {
// do something
}
});
$('element').submit(function() {
$(this).addClass('foo');
});
而现在第一个函数什么都不做,因为它已经在第二个函数之前被触发。有没有一个干净的方法来解决这个问题。也许我需要一个超时事件(即使我讨厌他们)?
是这会工作,但后来我需要做的声明我在这一切的声明“经过验证“功能。我不想要那样的东西(想起js的调用函数)。 我想要一个正常的提交事件做我的东西。但只是我想确定这个提交事件是在一些东西完成时执行的(在我的情况下,我的确认插件完成了他的工作)。所以我可以做一些事情,比如向我的插件添加一个“无效”类到表单中,并在第二次提交事件中检查它,例如“if!hasclass(invalid)”,但是如果总是为true,因为表单不具有无效原因,插件被执行到晚期 – user1104419 2011-12-18 15:59:22
我编辑了我的问题,使其更容易理解 – user1104419 2011-12-18 16:22:32
请参阅上面的更新 – 2011-12-20 09:40:57