I am trying to make a form that uses HTML5 validations and uses ajax to display mail sending status. But when I click send button it doesn't work.
Form HTML:
<div class="contactForm">
<form onSubmit="onSubmitForm()" id="form">
<div style="font-size:36px;">Contact Me</div>
<br>
<br>
<label>Name*</label>
<input name="name" id="name" type="text" required>
<label>Subject*</label>
<input name="subject" id="subject" type="text" required>
<br>
<br>
<label>Email*</label>
<input name="email" id="email" type="email" required>
<label>Contact</label>
<input name="subject" id="number" type="number">
<br>
<br>
<label>Your Message*</label>
<br>
<textarea id="message" cols=86 rows=10></textarea>
<br>
<button type="submit" style="float:right;"></button>
</form>
<div class="sendingImage">Mail Sending</div>
</div>
It contains a div that will be displayed when I click a button on my website, and after sending mail the div is hidden automatically. But when I click button it does not working as i want.
Form JS:
function onSubmitForm() {
var name = $("#name").val();
var subject = $("#subject").val();
var email = $("#email").val();
var number = $("#number").val();
var msg = $("#message").val();
$("#form").hide();
$(".sendingImage").show();
$.ajax({
type: "post",
url: "mailme.php",
data: { "name": name, "subject": subject, "email": email, "message": message }
})
.done(function(msg) {
if (msg == "1")
{
alert("");
}
});
}
Form PHP:
<?php
$name_id = $_POST['name'];
$email_id = $_POST['email'];
$subject_id = $_POST['subject'];
$message_id = $_POST['message'];
$message = "Name: $name_id\n
Email Address: $email_id\n
Subject: $subject_id\n
Message: $message_id";
//mail('[email protected]','message from website',$message);
// made above line comment to test functionality
echo '1';
?>
How can it be fixed?
onSubmit=" return onSubmitForm()". Or you can use jQuery action andevent.preventDefault.