私が抱えている問題は、すべてのフィールドが空の場合、またはすべてのフィールドが空の場合、コードが false を返すように作成されているにもかかわらず、フォームがまだ送信されることです。
私のHTML:
<form action="" method="post" name="contactForm" id="contactForm">
<input type="text" name="contactName" id="contactName" class="contactTextfield" />
<input type="text" name="contactPhone" id="contactPhone" class="contactTextfield" />
<input type="text" name="contactEmail" id="contactEmail" class="contactTextfield" />
<textarea name="contactMessage" id="contactMessage" class="contactTextarea" rows="5"></textarea>
<input type="submit" name="contactSubmit" id="contactSubmit" value="Send"/>
</form>
私のjQuery:
$("#contactForm").submit( function() {
var contactName = $("#contactName").val();
var contactEmail = $("#contactEmail").val();
var contactMessage = $("#contactMessage").val();
var emailFormat = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if ( contactEmail != '' && emailFormat.test(contactEmail) ) {
var contactEmailCheck = true;
}
if ( contactName != '' ) {
var contactNameCheck = true;
}
if ( contactMessage != '' ) {
var contactMessageCheck = true;
}
if ( contactEmailCheck == true && contactNameCheck == true && contactMessageCheck == true ) {
return true;
} else {
return false;
}
});
修繕:
jqueryコードがインデックスページのヘッダーにあり、フォーム自体が別のhtmlファイルからajaxを介してページにロードされただけであるため、機能していないことが判明しました。フォームと同じファイル内に jquery コードを配置する必要がありました。