我寫了一個用於驗證表單的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