jquery,绑定顺序/等待回调

时间:2011-12-18 12:00:12

标签: javascript jquery binding

我写了一个用于验证表单的jquery插件。它将自己绑定到$('element')。提交事件以触发验证(绑定在插件内)。不知怎的,这样:

// 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
    }
}

希望我说得对...我的英语不是最好的,但我试着尽可能具体(我希望,伪代码也是正确的方法)

//编辑:让问题更具体: 我正在试图找到解决以下问题的方法:(它非常出于上下文,但问题恰恰就在那里......) 我有一个提交事件,它根据在另一个decleration中触发的某些代码执行某些操作。

$('element').submit(function () {
    if ($(this).hasClass('foo')) {
        // do something
    }
});

$('element').submit(function () {
    $(this).addClass('foo');
});

现在第一个功能是什么都没做,因为它在第二个功能之前被触发了。有没有一个干净的方法来解决这个问题。也许我需要一个超时事件(即使我讨厌它们)?

1 个答案:

答案 0 :(得分:1)

如果您使用的是jQuery.Validate(看起来您使用的是.validate()语法),则只需调用 isValid()方法:

if (validate plugin was executed) { 

然后可以

if ($('form').isValid()) {