2012-04-20 46 views
1

我一直試圖對jQuery Validation plugin應用一個簡單的淡入淡出過渡(例如fadeToggle();),但沒有運氣。這是我的代碼:如何將簡單的淡入淡出過渡應用於jQuery驗證?

$.validator.setDefaults({ 

    // Add fadeToggle(); to showErrors 
}); 

$("#login_form").validate(); 

$("#login_form").submit(function(event) { 
    event.preventDefault(); 

    if($("#login_form").valid()) { 

     $.post("/user/ajax_login", $('#login_form').serialize(), function(data) { 
      if(data.redirect != null) { 
       window.location.replace(data.redirect); 
      } 
     },'json'); 
    } 
}); 

是否有一種簡單的方法來添加這個淡入淡出過渡?

回答

2

對於一個非常簡單的答案:

你已經在使用valid()方法來檢查是否有錯誤或不...爲什麼不利用呢?

例如:

if($('#login_form').valid()) { 
    // everything seams fine, lets submit the form 

    $.post("/user/ajax_login", $('#login_form').serialize(), function(data) { 
     if(data.redirect != null) { 
      window.location.replace(data.redirect); 
     } 
    },'json'); 
} 
else { 
    // there is some kind of validation error 

    $('label.error') 
    .hide() // by this time all .error classes are shown, let's hide them 
    .fadeIn('slow'); // and show them gently... 

} 

Live example on JsBin