ここで少し問題が発生しました。ゲストブック用のフォームがあり、各入力が検証されて空になるため、エラー メッセージが表示されます。以下に示すように、フェードアウトする前に、エラーメッセージが2秒間遅れるようにjqueryセクションを調整しました。
$(document).ready(function(){
var working = false;
$('#addCommentForm').submit(function(e){
e.preventDefault();
if(working) return false;
working = true;
$('#submit').val('Working..');
$('.error').remove();
$.post('submit.php',$(this).serialize(),function(msg){
working = false;
$('#submit').val('Submit');
if(msg.status){
$(msg.html).hide().insertAfter('#new').slideDown();
$('#body').val('');
}
else {
/* This is the section im stuck with */
$.each(msg.errors,function(k,v){
$('[for='+k+']').append('<div class="error">'+v+'</div>').delay(2000).fadeOut();
});
}
},'json');
});
});
ただし、エラー メッセージが消えた後、ラベルも消えます。コードのこの部分に関係があると感じています:
'[for='+k+']'
ラベルではなくエラーメッセージだけがフェードアウトするように、これを回避する方法はありますか?
私からさらにコードが必要な場合は、お知らせください。