これらすべての初心者なので、コードをできるだけシンプルに保つようにしています。ユーザーが送信前にすべてのフィールドに入力する必要があるのに、送信されるとメールを送信するフォームがあるため、次のスクリプトがあります
<script type='text/javascript'>
$('#mailform').submit(function() {
if (('#emailName' || '#emailEmail' || '#emailSubject').val() == "") {
alert('Please fill out all fields before clicking submit');
return false;
}
else {
alert('Your Email has been sent');
}
});
</script>
これは私のHTMLです
<form id="mailform" method="" action="http://www.mysiteaddress.co.uk/sendmail.php">
Your Name: <input id="emailName" name="yourName" type="text" /><br />
Your Email: <input id="emailEmail" name="yourEmail" type="text" /><br />
Subject: <input id="emailSubject" name="subject" type="text" /><br />
Message:<br />
<textarea name="message" rows="15" cols="40"></textarea><br />
<input type="submit" />
</form>
ただし、送信をクリックすると、フォームは JavaScript を完全に無視し、php を実行します。JavaScript が最初に実行されないのはなぜですか?
検証は現在機能していますが、php を実行すると、フォームがメールで送信されず、else ステートメントのヘッダー部分に直接ジャンプします
if ( preg_match( "/[\r\n]/", $name ) || preg_match( "/[\r\n]/", $email ) ) {
header ( "Location: http://www.mysite.co.uk/contactme" );
}
else {
mail( "me@mysite.co.uk", "$name <$subject>",
$message, "From: $name <$email>" );
header ( "Location: http://www.mysite.co.uk/contactme" );
}
?>