如何停止JQuery提交然后运行ajax验证然后提交表单

时间:2013-07-31 06:49:19

标签: jquery ajax forms submit preventdefault

我有一张表格,我想在提交前验证。

我尝试过stackoverflow的不同解决方案,但没有使用以下代码。

当一切正常时,我无法提交表单。

$('#form1').submit(function(e) {
    e.preventDefault();
    var xxx = $('#xxx').val();
    var yyy = $('#yyy').val();
    var zzz = $('#zzz').val();
    var uuu = $('#uuu').val();
    var data_string = 'uuu=' + uuu;
    if (zzz != '000000' && zzz != '') {
        $.ajax({
            url: 'ajax.php',
            type:'POST',
            data: data_string,
            dataType: 'json',
            cache: false,
            success: function(response){
                if (response == false) {
                    if (xxxl == '') {
                        alert("Text!");
                    }
                    else if (yyy == '') {
                        alert("Text!");
                    }
                    else {
                        $(this).trigger('submit');
                    }
                }
            }
        });
    }
    else {
        $(this).trigger('submit');
    }
});

2 个答案:

答案 0 :(得分:1)

好的,我终于解决了这个问题。 我做了两个不同的功能。 1表示提交,另一个表示ajax。 这是一个例子:

             $('#form1').submit(function(event) {
                var xxx = $('#xxx').val();
                var yyy = $('#yyy').val();
                var zzz = $('#zzz').val();
                var uuu = $('#uuu').val();
                if (zzz != '000000' && zzz != '') {
                    validate_brutokaal(uuu, function(response) {
                        if (response === false) {
                            if (xxx == '') {
                                alert("Text!");
                                event.preventDefault ? event.preventDefault() : event.returnValue = false;
                            }
                            else if (yyy == '') {
                                alert("Text!");
                                event.preventDefault ? event.preventDefault() : event.returnValue = false;
                            }
                        }
                        else {
                            return true
                        }
                    });
                }
                else {
                    return true;
                }
            });

            function validate_xxxyyy(uuu, callback) {                   
                var data_string = 'uuu=' + uuu;
                $.ajax({
                    url: 'ajax.php',
                    type:'POST',
                    data: data_string,
                    dataType: 'json',
                    cache: false,
                    async: false,
                    success: function(response){
                        callback(response);
                    }
                });
            }

答案 1 :(得分:0)

将jQuery提交功能绑定到FORM元素 像

$("#formId").submit(function(){
....
return true;
});

逻辑上返回true或false。