2012-03-09 131 views
1

如何使用jquery fadeOut函數在此Fiddle處淡出驗證響應消息「此字段是必需的」。我只想讓消息彈出(不淡入),然後在3秒鐘內緩慢淡出。fadeOut驗證消息jquery

這是控制驗證插件的JS:

$(document).ready(function() { 
     $('#commentForm').validate({ 
      submitHandler: function(form) { 
       $.ajax({ 
        type: 'POST', 
        url: 'process.php', 
        data: $(this).serialize(), 
        success: function(returnedData) { 
         $('#commentForm').append(returnedData); 
        } 
       });   
       return false; 
      }, 
      errorPlacement: function(error, element) { 
        error.insertAfter(element).position({ 
         my:'right top', 
         at:'right top', 
         of:element   
        }); 
       }   
     }); 
    }); 

謝謝您的輸入。

回答

0

所有你需要做的是在error參數調用淡出在errorPlacement()

  errorPlacement: function(error, element) { 
       error.insertAfter(element).position({ 
        my:'right top', 
        at:'right top', 
        of:element   
       }); 
       error.fadeOut(3000); 
      } 

工作例如:http://jsfiddle.net/kmJ87/4/

+1

你好謝謝@maxedison。你能幫我理解爲什麼fadeOut只能用於第一個驗證響應嗎?第二次觸發validatoin時,消息不會fadeOut。 – 2012-03-09 17:02:45

+0

Fadeout的作品,但會再次點擊提交這些功能被調用。 – Gowri 2012-09-13 09:06:47

1

如果你想使定時淡出效果,多次運行,你需要一旦它消失刪除錯誤元素:

errorPlacement: function(error, element) { 
    error.insertAfter(element).position({ 
    my:'right top', 
     at:'right top', 
      of:element   
     }); 
     // here the magic happens, we remove the element, forcing the errorPlacement callback to be run every time 
     error.fadeOut(3000, function() { $(this).remove(); }); 
    } 
+0

工作表示感謝 – Gowri 2012-09-13 09:49:16