検証プラグインのAjaxerrorPlacementに問題があります(このフィドルを参照)。ErrorPlacementとposition:absoluteを組み合わせると、ajax検証応答が間違った場所にポップアップ表示されます。
ユーザーがまだ情報を入力していない場合、エラーメッセージは正しい位置にポップアップ表示されます(赤いテキストで入力フィールドの右側に表示されます)。ただし、ユーザーが情報を入力してから削除すると、ajaxアラート(「このフィールドは必須」)が、本来あるべき場所の下のフィールドの間違った場所にポップアップ表示されます。問題を表示するには、すべてのフィールドに正しく入力してから、名前を削除してください。「このフィールドは必須です」というメッセージが電子メールフィールドにポップアップ表示されますが、これは名前フィールドに属しています。
検証を制御するjsは次のとおりです。
$(document).ready(function() {
errorPlacement: function(error, element) {
error.insertAfter( element).position({
my:'right top',
at:'right top',
of:element
});
error.fadeOut(3000);
}
});
});
問題を引き起こしているCSSは次のとおりです。
label.error { position:absolute;}
入力フィールドにエラーをフロートできるように、このcssを含める必要があります。問題を確認するには、フィドルを参照してください。ありがとうございました!