这是我的代码,不能与 jquery 验证器和 ajax 一起使用。这段代码确实有效,并且 serialize()
函数似乎可以工作,因为在浏览器中我看到了数据,但它没有达到我的成功,因为它只是刷新了页面并且数据没有进入 mysql。一直在阅读各种线程,但没有任何效果。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
<script src="http://malsup.github.com/jquery.form.js"></script>
<script>
//validate contact form
$(document).ready(function() {
$("#form_contact").validate({
rules: {
firstname: {
required: true,
minlength: 2
},
lastname: {
required: true,
minlength: 2
},
email: {
required: true,
email: true
},
message: {
required: true,
minlength: 2
}
},
messages: {
firstname: {
required: "Please enter your first name"
},
lastname: {
required: "Please enter your last name"
},
email: {
required: "Please enter your email address."
},
message: {
required: "Please enter a message."
}
},
submitHandler: function(form) {
var d = $("#form_contact").serialize();
$.ajax({
url: '/assets/php/index.php',
type: 'POST',
//dataType: 'text',
data: d,
success: function(data) {
//$('#form_contact').hide();
$("#thanks").text("Thank you for your message. I will get back to you shortly.");
$("#form_contact")[0].reset(); // To reset form fields on success.
return false;
}
}):
}
return false;
});
});
</script>
最佳答案
submitHandler: function(ev, form) { //I dont know what this form object is doing here, add event object, ev.
var d = $("#form_contact").serialize();
$.ajax({
url: '/assets/php/index.php',
type: 'POST',
//dataType: 'text',
data: d,
success: function(data) {
//$('#form_contact').hide();
$("#thanks").text("Thank you for your message. I will get back to you shortly.");
$("#form_contact")[0].reset(); // To reset form fields on success.
//return false; <-- commented it out.
}
})
//: <-- commented this colon character
ev.preventDefault(); //add it here to prevent the form from submitting
}
请阅读评论以进一步说明,我认为您也不需要其他 return false
。我已经删除了一个,请检查答案代码。
关于javascript - jquery表单验证器不支持ajax,我可以让jquery在没有ajax的情况下进行验证,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462045/