我使用来自 bassistance.de 的 jQuery 验证器插件(1.11)并通过 php 提交。现在我在 javacript 代码末尾的提交处理程序中添加了一个 ajax 调用,但是该调用不起作用,firebug 控制台也不存在。
案例 1如果我将 ajax 调用放在网站的开头,它可以工作,但不再看到验证器插件。
案例 2如果我将调用放在提交处理程序中,它不存在并且表单是由 php 提交的。
案例 3 如果我将代码放在页面末尾,联系表单仍然是由 php 提交的。
这是ajax调用:
$("#contactform").submit(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "formfiles/submit.php",
data: $(this).serialize(),
success: function() {
$('#contactform').html("<div id='message'></div>");
$('#message').html("<h2>Your request is on the way!</h2>")
.append("<p>someone</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/ok.png' />");
});
}
});
return false;
});
有谁知道出了什么问题?
在此先感谢您的帮助,为此苦苦挣扎。
编辑 为了更好地理解问题,这里是完整的 javascript
$(document).ready(function(){
$("#contactform").validate();
$(".chapta").rules("add", {maxlength: 0});
var validator = $("#contactform").validate({
ignore: ":hidden",
rules: {
name: {
required: true,
minlength: 3
},
cognome: {
required: true,
minlength: 3
},
subject: {
required: true,
},
message: {
required: true,
minlength: 10
}
},
submitHandler: function(form) {
$("#contactform").submit(function(e){
e.preventDefault();
$.ajax({
type: "POST",
url: "formfiles/submit.php",
data: $(this).serialize(),
success: function() {
$('#contactform').html("<div id='message'></div>");
$('#message').html("<h2>Your request is on the way!</h2>")
.append("<p>someone</p>")
.hide()
.fadeIn(1500, function() {
$('#message').append("<img id='checkmark' src='images/ok.png' />");
});
}
});
return false;
});
},
});
});
编辑 2
选择器和其他所有似乎都很好。
<form action="#n" class="active" method="post" name="contactform" id="contactform">