3
我在表單中有2種驗證方法。 a。 jQuery驗證 b。 Form.Submit()處理程序中的幾個複雜的硬編碼規則。如何在JQuery驗證SubmitHandler和Form.Submit成功後阻止輸入?
我需要禁用一次提交按鈕一次& b驗證成功,以便用戶不提交兩次。
我最好的嘗試,到目前爲止涉及添加一個「submitHandler」到jQuery驗證爲使...
jQuery("#myForm").validate(
{
submitHandler: function (form) {
form.submit({
success: function (submittedForm, action) {
alert("submitting");
$('input[type=submit]', submittedForm).attr('disabled', 'disabled');
}
});
}
});
當然,這似乎並沒有工作。到達SubmitHandler時,兩個驗證階段都已經運行?如果(a)JQuery驗證失敗,則不觸發此事件。但是,如果(b)自定義驗證失敗,那麼雖然表單未提交,但仍會運行。如果兩個(一個& b)通過它運行但內部「成功」回調永遠不會達到。所以我的輸入永遠不會被禁用。
這裏是1-3的示例的n個提交驗證(其動態形式存在其中.submit用於驗證失敗時返回false其它類似的驗證)...
$('#myForm').submit(function() {
// If one is checked they must both be checked.
if ($(SessionRadioId_2).is(':checked') || $(SessionRadioId_4).is(':checked')) {
if (!($(SessionRadioId_2).is(':checked')) || !($(SessionRadioId_4).is(':checked'))) {
alert('If you plan on attending "ABC" you must select it in both Session 2 & 3.');
return false;
}
}
謝謝, 賈斯汀
同意這將是一個合適的解決方案。但是,我沒有看到任何方法來連接validationFailed事件。記住它需要處理JQuery驗證失敗和OnSubmit失敗。在調用驗證之前,我還可以使用哪些事件處理程序來禁用? – Justin