Обновление Я обновил код, чтобы он успешно сдвинулся вниз с ошибки и скрылся.К сожалению, мне пришлось использовать setInterval, что не идеально.Но это обходной путь, если вы не можете найти другой путь.
http://jsfiddle.net/XrMzL/5/
Вы можете попробовать следующее
$(document).ready(function(){
setInterval(function() {
if($(".valid").prev().hasClass("errorSlideDown")) {
$(".valid").prev().slideUp();
}
},1000);
jQuery('form').validate({
debug: true,
rules: {
email: {
required: true,
email: true
}
},
messages: {
email: "Please enter a valid email address."
},
errorPlacement: function(error, element) {
if (!element.prev().hasClass("errorSlideDown")) {
var itm = $("<div />").html(error.html()).addClass("errorSlideDown").hide();
itm.insertBefore(element).slideDown();
}
}
});
});
Я использовал insertBefore, чтобы облегчить жизнь, когдапроверка на наличие уже созданного мной динамического диапазона с помощью функции .prev ().