我会承认,我是AJAX的新手,我一直只是提交表格旧学校的方式,对表格本身采取后期行动,这很好。现在我正在尝试使用jQuery validate插件通过AJAX在jQuery中提交表单。
我还没有检查我的服务器端验证,我只是想确保我可以验证和提交我的客户端信息。我找不到将它们放在一起的单一资源。我可以找到很多有关验证工作的信息,我已经找到了有关通过AJAX发布的信息,但我似乎无法将它们全部串联起来。
我的提交代码有点像这样:
$(function() {
$("#contactForm .submit-button").click(function() {
var Name = $("#Name").val();
var Phone = $("#Phone").val();
var Email = $("#Email").val();
var Message = $("#Message").val();
var dataString = 'Name=' + Name + '&Phone=' + Phone + '&Email=' + Email + '&Message=' + Message;
$.ajax({
type: "POST",
url: "scripts/contactengine.php",
data: dataString,
success: function(){
$('#contactForm').fadeOut(1000);
$('.thanks').fadeIn(1000);
}
});
return false;
});
})
但是,似乎我必须使用jQuery validate的提交处理程序:
$("#myForm").validate({
rules: {
command: 'required'
},
messages: {
command: 'Please enter a command.'
},
submitHandler: function(form) {
$(form).ajaxSubmit({
success: function(data) { /* ... */ },
url: form.action,
});
我的问题是我尝试了几种不同的方法来将我的代码整合在一起,我似乎无法做出任何魔法......我也做了一些搜索,但我只是想出来什么都没有。
我希望有人可以帮助解释我需要做些什么才能将它组合在一起,如果有人可以推荐一个很好的资源来使用这种方法在PHP中进行服务器端验证,我真的很感激。
谢谢!
答案 0 :(得分:3)
.ajaxSubmit
使用jQuery表单插件。如果您尚未包含它,则会出现脚本错误,您可以在任何浏览器控制台中看到该错误。将根据浏览器阅读ajaxSubmit is not a funcion
或类似内容
你可以采取各种方法。
在验证插件之外定义提交处理程序并删除submitHandler选项:
$("#contactForm").submit(function() {
var $form=$(this)
/* don't need to manually code each key/value pair*/
var data= $form.serialize()
$.ajax({
type: "POST",
url: "scripts/contactengine.php",
data: data,
success: function(){
$form.fadeOut(1000);
$('.thanks').fadeIn(1000);
}
});
return false;
});
或者在验证插件的submitHandler选项中,您可以调用自己的ajax:
submitHandler: function(form) {
var data= $(form).serialize()
$.ajax({
type: "POST",
url: "scripts/contactengine.php",
data: data,
success: function(){
$(form).fadeOut(1000);
$('.thanks').fadeIn(1000);
}
});
return false;
}