简体   繁体   中英

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. So far my code returns false if the validation fails, but submits the form before the AJAX has completed. 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:

 $('#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
             }
        });


    });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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