javascript - jquery ajax onsubmit 表单错误

标签 javascript php jquery ajax

我有一个下面给出的表格

    <form name="frm_dcg" id="frm_dcg" method="post" enctype="multipart/form-data" action="" onsubmit="return validate_form();" >
            <div class="login-form">
                <div class="sign-in-htm">
-----------other codes-------

和jquery函数

function validate_form(){
    var run_name = $("#run_name").val();        
        $.ajax({
            url: "check_folder.php",
            type: "POST",
            data: "run_name="+run_name,
            success: function (response) {
                if(response=="OK"){                     
                con = confirm("File already exists.. Do you want to replace existing file?");                               
                        if(con==true){
                            return true;
                        }else{
                            return false;
                        }
                } else{
                    return true;
                }
                return false;
            }
        });
}

ajax 工作正常,但问题是表单在任何条件下都会提交。即使它返回 false。请仔细检查我的代码,如果有任何逻辑错误,请告诉我。

最佳答案

Ajax 是一个异步函数,这意味着您调用的return false 发生在提交表单之后。

相反,您必须在 validate_form() 函数末尾添加 return false。

function validate_form(){
    var run_name = $("#run_name").val();        
    ...
   return false; // <-- before the ending curly brace
}

请注意,表单应始终返回 false。您可以验证 run_name,使用它来决定是否应该执行 ajax 请求。

function validate_form(){
    var run_name = $("#run_name").val(); 
    if (run_name.length > 5) { // just an example
        // do ajax request
    } else {
        // show invalid message
    }
    return false; // always false so the form doesn't submit.
}

关于javascript - jquery ajax onsubmit 表单错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42826056/

相关文章:

php - 使用 mysql_fetch_array 循环跳过第一行

php/laravel - 如何根据最大数字排列数组并对其进行编号

jquery - 从 iFrame 打开模态窗口到父窗口

jquery - 如何指定要更改背景颜色的元素jquery

javascript - 未捕获的语法错误 : Unexpected token ILLEGAL on javascript objects

javascript - 我无法从 onchange 事件中调用两个函数

javascript - 如何在 Javascript Laravel Blade 中编写路由 URL?

javascript - 禁用按住 jQueryUI 微调器上的向上和向下按钮

javascript - KendoDropDownList 选项数据项

javascript - 如何保存 html 表单输入数据?