Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在继续执行默认操作之前执行AJAX请求_Javascript_Jquery_Ajax_Preventdefault - Fatal编程技术网

Javascript 在继续执行默认操作之前执行AJAX请求

Javascript 在继续执行默认操作之前执行AJAX请求,javascript,jquery,ajax,preventdefault,Javascript,Jquery,Ajax,Preventdefault,我有一个基本的AJAX请求,如下所示: $.ajax({ url: 'check_password.php', type: 'post', data: 'password='+password, dataType: 'json', success: function(json) { if (json['success']) { //Continue wit

我有一个基本的AJAX请求,如下所示:

    $.ajax({
        url: 'check_password.php',
        type: 'post',
        data: 'password='+password,
        dataType: 'json',
        success: function(json) {
            if (json['success']) {
               //Continue with default action
            }else{
                //Password is invalid, stop the script and return an error
                preventDefault();
                $(".error").show();
            }
        }

我建议完全阻止默认设置,然后在表单节点上使用.submit来提交表单(如果它是表单),从而绕过jQuery事件处理程序

$("#myform").on("submit",function(event){
    event.preventDefault();
    var form = this;
    $.ajax({
        url: theurl,
        type: "POST",
        data: thedata
        dataType: "json"
    }).done(function(json){
        if (json.success) {
            form.submit();
        }
        else {
            $("#error").show();
        }
    });    
});

你的问题是……?我相信问题是,在提交表单之前,我如何从AJAX请求中获得响应?如果不使用同步AJAX,你就无法获得响应,这通常是个坏主意。很抱歉,我的问题不清楚,我很忙。如果json['success']对象为==false,我希望表单不要提交。抱歉信息不足,伙计们:@KevinB-answer会起作用的:抱歉,时间晚了,但谢谢你给我指出了正确的方向,也很抱歉写了一个蹩脚的问题,我发帖的时候很匆忙!再次感谢@彼得斯:没问题,很高兴你能让它工作。