简体   繁体   English

jQuery / AJAX-解决Ajax后提交表单

[英]JQuery / AJAX - Submit form after ajax resolved

I have a form that I want to validate the data of and then store the values in a $_SESSION variable before the form is submitted. 我有一个要验证的数据的表单,然后在提交表单之前将值存储在$ _SESSION变量中。 So far my code returns false if the validation fails, but submits the form before the AJAX has completed. 到目前为止,如果验证失败,我的代码将返回false,但是会在AJAX完成之前提交表单。 I'm not sure how to do that bit: 我不确定如何做到这一点:

$('#c_form').submit(function() {
    if ($("#del_f").val().length == 0) {
        $("#del_f").addClass("alert-danger");
        $("#del_f").focus();
        return false;
    } else {
        $("#del_f").removeClass("alert-danger");
    }
    if ($("#del_s").val().length == 0) {
        $("#del_s").addClass("alert-danger");
        $("#del_s").focus();
        return false;
    } else {
        $("#del_s").removeClass("alert-danger");
    }
    var update_session_delivery = "n=" + $("#del_f").val() + " " + $("#del_s").val();
    var ajax1 = $.ajax({
        url: 'work/update_session_delivery.php',
        type: 'post',
        data: update_session_delivery,
        success: function(result) {}
    });

    $.when(ajax1).done(
        function() {
            //submit the form?
        }
    )
});

try e.preventDefault: 试试e.preventDefault:

 $('#c_form').submit(function(e) {
         e.preventDefault();//prevent form from submiting
         var form = $(this);
        if ($("#del_f").val().length == 0) {
            $("#del_f").addClass("alert-danger");
            $("#del_f").focus();
            return false;
        } else {
            $("#del_f").removeClass("alert-danger");
        }
        if ($("#del_s").val().length == 0) {
            $("#del_s").addClass("alert-danger");
            $("#del_s").focus();
            return false;
        } else {
            $("#del_s").removeClass("alert-danger");
        }
        var update_session_delivery = "n=" + $("#del_f").val() + " " + $("#del_s").val();
        var ajax1 = $.ajax({
            url: 'work/update_session_delivery.php',
            type: 'post',
            data: update_session_delivery,
            success: function(result) {
                   //aditional logic here
                form.submit();//submit the form after success
             }
        });


    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM