【问题标题】:Have to click twice to submit a form with form validator and AJAX必须单击两次才能使用表单验证器和 AJAX 提交表单
【发布时间】:2015-01-19 16:53:36
【问题描述】:

我在提交表单时使用表单验证器 (JQuery) 时遇到了一些麻烦。它需要第二次点击来触发我的表单验证器对象的 onSucces 回调。

function formSender(form, valid){
    $.validate({
        form : form,
        validateOnBlur : false,
        scrollToTopOnError : false,
        onSuccess : function(){
            $.ajax({
                type: "POST",
                url: $(form).attr("action"),
                dataType: 'json',
                async: true,
                cache: false,
                data: $().serialize(),
                success: function(jsonData,textStatus,jqXHR){
                    if(jsonData.hasError == false){
                        $(form).fadeToggle("fast", "linear");
                        $(valid).html(jsonData.message) ;
                    }
                },
                error: function(XMLHttpRequest, textStatus, errorThrown)
                {
                    $(valid).html(jsonData.message) ;
                }
            }
        )}
    });
}

$("#form-partners").on("submit", function(event) {
    ga('send', 'event', 'formulaire', 'clic', 'contact');
    formSender('#form-partners', '#confirmation-message-partenaire');
    customPreventDefault(event);
});

谢谢!

【问题讨论】:

  • 您可能要等到第一次提交后才设置提交流程。

标签: jquery ajax forms validation


【解决方案1】:

最后,我不得不将元素 #form-partners 的提交事件与 validate 插件表单验证器的自动触发器分离,如下所示:

$.validate({
    form : '#form-partners',
    errorMessagePosition : 'top',
    validateOnBlur : false,
    scrollToTopOnError : false,
    showHelpOnFocus : false,
    language : myLanguage,
    onSuccess : function (form) {
        return $.sendFormDataViaAJAX(form, '#form-partners', '#confirmation-message-partenaire');
    }
});        

$.sendFormDataViaAJAX = function(form, formName, valid) {
    $.ajax(
    {
        /. Content ./
    }

    $("#form-partners").on("submit", function(event) {
        ga('send', 'event', 'formulaire', 'clic', 'contact');
        customPreventDefault(event);
    });
}

【讨论】:

    猜你喜欢
    • 2013-03-18
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多