MS Edge:表单即使返回false也会提交

时间:2016-04-11 15:05:20

标签: javascript jquery html ajax

在为我工作创建的网站创建登录表单时遇到了一个奇怪的问题。我知道它已被提出了一百万次,但我的情况只在Edge中出现。

原则是:我有一个包含用户名和密码的表单。提交表单时,用户和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>

JS:

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

有人可以帮忙吗?感谢您将来的答案。

0 个答案:

没有答案