Ajax调用提交处理程序Jquery验证

时间:2017-03-12 08:53:59

标签: jquery ajax jquery-validate

我有一个有多个select下拉列表name=select[]的表单,这个表单是从Jquery Validation验证的,并且在成功验证后提交处理程序调用Ajax我想发送所有表单键和值也包括在数组形式中,这里是我的代码。

function:submitHandler
{
$.ajax({
url: "processo.php", 
type: "POST",             
data: new FormData(this),
cache: false,             
processData:false,      
success: function(data)   
{
$('#loading').hide();
$("#message").html(data);
}
});
}

现在当验证成功完成时,新的FormData(这个)无法识别表单id。但是当我把new Formdata($("#frmRegister")[0])然后它的发送变量发送到php而不是数组。如何在new Formdata("#frmRegister")中定义表单ID。请记住,我也有多个选择数组的形式。

2 个答案:

答案 0 :(得分:8)

The submithandler进入.validate()方法,您将使用开发人员提供的form参数。

$('#myform').validate({
    submitHandler: function(form) {
        $.ajax({
            url: "processo.php", 
            type: "POST",             
            data: new FormData($(form)),
            cache: false,             
            processData: false,      
            success: function(data) {
                $('#loading').hide();
                $("#message").html(data);
            }
        });
        return false;
    },
    // other options
});

You could also use $(form).serialize(); instead

答案 1 :(得分:1)

非常感谢你给我的答案我在这里有解决方案。

function:submitHandler
{
$("#frmRegister").load("submit",function(e)// Trigger Submit When Validation Done
{
$.ajax({
url: "processo.php", 
type: "POST",             
data: new FormData(this),
cache: false,             
processData:false,      
success: function(data)   
{
$('#loading').hide();
$("#message").html(data);
}
});
});
}