2015-11-23 38 views
-1

我正在使用jQuery驗證插件。jQuery驗證 - 如何在提交後刪除錯誤類onkeyup

$("#loginForm").validate({ 
    highlight: function (element, errorClass) { 
     $(element).parent('.form-group').addClass('error-sign-up'); 
    }, 
    unhighlight: function (element, errorClass) { 
     $(element).parent('.form-group').removeClass('error-sign-up'); 
    }, 
    onfocusout:false, 
    onkeyup:false, 
    rules: { 
     password: { 
      required: true, 
      minlength: 6, 
     }, 
    }, 
    messages: { 

     password: { 
      required: "Please provide a password", 
      minlength: "Your password must be at least 6 characters long" 
     } 
    } 
}) 

提交後我想要移除元素上的onkeyup錯誤。 現在只有在用戶再次單擊提交時纔會刪除錯誤。

我用

onfocusout:false 
    onkeyup:false 

不執行驗證onfocusout在/的onkeyup

+0

您可以在提交後重置表單,如 $(「#loginForm」)。resetForm(); –

+0

如果您想通過'onkeyup'觸發器刪除錯誤類,那麼爲什麼要禁用它?刪除'onkeyup:false',然後錯誤將按預期被刪除。 – Sparky

+0

你正在造成你抱怨的狀況。如果你不想在'keyup'或'focusout'觸發驗證,那麼再次單擊提交是唯一的觸發器。 – Sparky

回答

0
onfocusout:false 
onkeyup:false 

你造成你抱怨條件。如果通過將onkeyuponfocusout觸發器設置爲false來禁用該觸發器,則單擊提交按鈕是唯一保留的驗證觸發器。

如果您想要通過onkeyuponfocusout觸發器刪除錯誤類,請不要禁用它們。刪除onkeyup: falseonfocusout: false,然後根據默認設置的意圖刪除錯誤。

+0

@ Sparky-你對onkeyup是正確的,但不關注onfocusout。我可以保留它的真實 –

+0

@SaritRotshild,我認爲你很困惑...你是什麼意思*「保持真實」*。你絕對不能將'onfocusout'設置爲'true',因爲這會破壞插件。您需要閱讀文檔:[「布爾值'true'是**不是有效值。」](http://jqueryvalidation.org/validate/#onfocusout)。根據我的回答,我說,「刪除」onfocusout選項使用默認行爲,並且從不將其設置爲「true」。 – Sparky

+0

@ Sparky-我讀過了,我可以。我不希望驗證會在focusout上執行,只有在提交 –