Как отправить и подтвердить форму через ajax

Пожалуйста, я пытаюсь одновременно отправить и подтвердить свою форму в моей базе данных с помощью Ajax, но она не работает для меня. Вот мой jquery

$(document).ready(function(){ $(".button").click(function(){ $("#myform").validate(); //Ajax to process the form $.ajax({ type: "POST", url: "process.php", data: { firstname: $("#firstname").val()}, success: function(){ $('#message').html(data); } }); return false; }); }); 

Проблема заключается в том, когда я отправляю форму, форма Ajax подчиняется самому себе. Пожалуйста, Каков правильный способ использования jquery validate и $ .ajax вместе?

Попробуйте это (работая для меня, как ожидалось):

Форма HTML:

 <link rel="stylesheet" href="http://jquery.bassistance.de/validate/demo/css/screen.css" /> <script src="http://jquery.bassistance.de/validate/lib/jquery.js"></script> <script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script> <script> // JQuery Script to submit Form $(document).ready(function () { $("#commentForm").validate({ submitHandler : function () { // your function if, validate is success $.ajax({ type : "POST", url : "process.php", data : $('#commentForm').serialize(), success : function (data) { $('#message').html(data); } }); } }); }); </script> <form class="cmxform" id="commentForm" method="get" action=""> <fieldset> <p> <label for="cname">Name (required, at least 2 characters)</label> <input id="cname" name="name" minlength="2" type="text" required /> <p> <label for="cemail">E-Mail (required)</label> <input id="cemail" type="email" name="email" required /> </p> <p> <label for="curl">URL (optional)</label> <input id="curl" type="url" name="url" /> </p> <p> <label for="ccomment">Your comment (required)</label> <textarea id="ccomment" name="comment" required></textarea> </p> <p> <input class="submit" type="submit" value="Submit" /> </p> </fieldset> </form> <div id="message"></div> 

Код PHP:

 <?php echo $_POST['email']; ?> 

Передача data в качестве параметра в вашей функции успеха:

 success: function(data){ 

Ваша функция success ничего не сделает, потому что вы не определили data

Вы забываете передать ответ

 $(document).ready(function() { $(".button").click(function() { //check the validation like this if ($("#myform").valid()) { //Ajax to process the form $.ajax({ type: "POST", url: "process.php", data: { firstname: $("#firstname").val() }, //you forget to passs the response success: function(response) { $('#message').html(response); } }); return false; } }); }); 

Прежде всего, зачем вы отправляете форму, если валидация не будет принята? Попробуйте это, если проверка достоверности действительно проверяет:

 $(function(){ $(".button").click(function(){ var myform = $("#myform"); if (myform.validate()) { $.post("process.php", myform.serialize(), function(data){ $('#message').html(data); }); } return false; }); }); . $(function(){ $(".button").click(function(){ var myform = $("#myform"); if (myform.validate()) { $.post("process.php", myform.serialize(), function(data){ $('#message').html(data); }); } return false; }); });