ユーザーがフォーム全体を完了していない場合に警告メッセージを表示したいのですが、期待どおりに機能していないようです。jQuery .each メソッドは、最初の入力フィールドからのみデータを収集します。最初のフィールドを空のままにしておくと正しく機能しますが、最初のフィールドのみを入力して他のフィールドを空のままにすると、成功と表示されますが、これは間違っています。
// send message on click
$("#submit").click(function() {
// store values
var data = $("#form").serialize();
$(":input, textarea").each(function() {
// if empty show warning
if ( $(this).val() === "" ) {
$(".message-fail").fadeIn(500);
}
// if not empty send message
else if ( !$(this).val() ) {
$.ajax({
type: "POST",
url: "mail.php",
data: data,
success: function() {
$(".message-sent").fadeIn(500);
}
});
}
});
});