Javascript MS Edge:即使返回false,也已提交表单

Javascript MS Edge:即使返回false,也已提交表单,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我在为我为工作创建的网站创建登录表单时遇到了一个奇怪的问题。我知道这件事已经被提出过一百万次了,但我的案子只是处于边缘 原则是:我有一个带有用户名和密码的表单。提交表单时,用户和pass将在ajax中进行验证和登录(如果是,则返回错误)。如果有效,它将重定向到主用户。(简单,不是吗?) 问题是,即使表单有return:false,但仅在Microsoft Edge中,页面仍会刷新。它可以在Chrome、IE(甚至在文档模式10)和Firefox上运行,没有任何问题 行动守则: <!-- j

我在为我为工作创建的网站创建登录表单时遇到了一个奇怪的问题。我知道这件事已经被提出过一百万次了,但我的案子只是处于边缘

原则是:我有一个带有用户名和密码的表单。提交表单时,用户和pass将在ajax中进行验证和登录(如果是,则返回错误)。如果有效,它将重定向到主用户。(简单,不是吗?)

问题是,即使表单有
return:false
但仅在Microsoft Edge中,页面仍会刷新。它可以在Chrome、IE(甚至在文档模式10)和Firefox上运行,没有任何问题

行动守则:

<!-- jQuery + validate plugins are already loaded -->  
<form id="loginform" method="post" class="">
    <div class="navbar-login panel">
        <div class="panel-heading">
            <h4 class="panel-title">Connexion au cours</h4>
        </div>

        <div class="panel-body">
            <div id="login-warning"></div>
            <div class="form-group col-md-12">
                <input class="form-control" style="width: 100%;" placeholder="Adresse email" name="LOGIN_EMAIL" type="email">
            </div>
            <div class="form-group col-md-12">
                <input class="form-control" style="width: 100%;" placeholder="Mot de passe" name="LOGIN_PASSWORD" type="password">                      
            </div>

        </div>
        <div class="panel-heading text-right" style="display: table;width: 100%;">
            <button type="submit" style="float: right;display: inline-block;" class="btn btn-info">Connexion</button>
        </div>
    </div>
</form>

有人能帮忙吗?谢谢您以后的回答。

当您添加事件参数并调用
preventDefault
时,运气好吗<代码>提交(函数(事件){…event.preventDefault();})否,已测试:(您在控制台中看到任何错误吗?请注意,如果提交处理程序中发生异常,将无法访问
返回false
。您可以在
返回false
之前添加一些
控制台。记录
,并检查是否执行了它。没有错误。但我在同一页面中通过ajax提交了另一个表单,这一个工作ks(使用非常类似的代码)你有没有发现这个问题?我遇到了完全相同的问题。除了edge之外,其他浏览器都可以工作。当你添加事件参数并调用
preventDefault
时,运气如何?
submit(函数(事件){……event.preventDefault();})
没有,已经测试过:(您在控制台中看到任何错误吗?请注意,如果提交处理程序中发生异常,将无法访问
返回false
。您可以在
返回false
之前添加一些
控制台。记录
,并检查是否执行了它。没有错误。但我在同一页面中通过ajax提交了另一个表单,这一个工作ks(使用非常类似的代码)你有没有发现这个问题?我遇到了完全相同的问题。除了edge之外,其他浏览器都能正常工作。
$("#loginform").validate({
    debug: false,
    rules: {
        LOGIN_EMAIL: {
            required: true,
            email: true
        },
        LOGIN_PASSWORD: {
            minlength: 6
        }
    }
});
$("#loginform").submit(function(e){
    var f = $(this);
    if(f.valid()){
        $.ajax({
            url: "req/ajx_login.php",
            type:"POST",
            cache: false,
            async: false,
            data: f.serialize(),
            success: function(data, status, xhr){
                // data is "success" if successed, anything else if failed
                if(data == "success"){
                    location = "/cours";
                }else{
                    $("#login-warning").html(data);
                }
            }
        });
    }
    return false;
});