【问题标题】:Ajax Call on submit handler Jquery Validation提交处理程序 Jquery Validation 上的 Ajax 调用
【发布时间】:2017-03-12 08:53:59
【问题描述】:

我有一个表单,它有多个选择下拉列表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(this) 无法识别表单 id。但是当我输入 new Formdata($("#frmRegister")[0]) 时,它会将变量发送到 php 但不是数组。我如何在new Formdata("#frmRegister") 中定义表单ID。请记住,我在表单中也有多个选择数组。

【问题讨论】:

  • 剩下的代码在哪里?为什么function: submitHandler?在.validate() 方法中,它应该是submitHandler: function(form) {...}。在适当的上下文中显示其余相关代码。

标签: jquery ajax jquery-validate


【解决方案1】:

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.

【讨论】:

    【解决方案2】:

    非常感谢您给出答案,我这里有解决方案是代码。

    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);
                        }
                    });
                });
            }
    

    【讨论】:

    • 但是function:submitHandler{...} 位于哪里?在 jQuery Validate 插件的上下文中,这些都没有任何意义。您是否真的在使用问题上的标签所示的这个插件?
    • 对不起,但是 function:submitHandler 不存在应该是 submitHandler: function(form) 作为您的请求。谢谢
    • 如果这是真的,那么$("#frmRegister").load("submit") 就没有意义了。您永远不会在此插件的 submitHandler 回调函数中放置 load 处理程序或 submit 事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    相关资源
    最近更新 更多