停止在Jquery中提交表单

停止在Jquery中提交表单,jquery,twitter-bootstrap,validation,Jquery,Twitter Bootstrap,Validation,我试图在引导和jquery中进行一些简单的验证 这是JS $(document).ready(function() { $("form").submit(function() { if (($('input[name^=password]').val()) != password) { msg = 'Incorrect username or password'; $(".modal-body").text(msg);

我试图在引导和jquery中进行一些简单的验证 这是JS

$(document).ready(function() {
    $("form").submit(function() {

        if (($('input[name^=password]').val()) != password) {
            msg = 'Incorrect username or password';
            $(".modal-body").text(msg);
            $('#myModal').modal('show');

        }
    });
});
问题是这种形式还在继续

她正在工作

已编辑

我做过这样的东西,但我不确定如果有两个可以吗

$(document).ready(function() {
    $("form").submit(function() {

        if ((($('input[name^=password]').val()) != password) || (($('input[name^=username]').val()) != username)) {
            msg = 'Incorrect username or password';
            $(".modal-body").text(msg);
            $('#myModal').modal('show');

            return false;
        } 
            if ((($('input[name^=password]').val()) != "") || (($('input[name^=username]').val()) != "")) {
                return false;
        } 
        else {
            // do something
        }
    });
});

您没有告诉表单不要提交,因此它不会提交。:-)


您没有告诉表单不要提交,因此它不会提交。:-)


有几种方法可以做到这一点。submit方法可以返回false,也可以将事件作为参数传递,然后调用preventDefault停止默认操作(submit)

返回False

$(document).ready(function() {
    $("form").submit(function() {
        if (($('input[name^=password]').val()) != password) {
            msg = 'Incorrect username or password';
            $(".modal-body").text(msg);
            $('#myModal').modal('show');

            return false;
        }
    });
});
预防默认值

$(document).ready(function() {
    $("form").submit(function(ev) {
        if (($('input[name^=password]').val()) != password) {
            msg = 'Incorrect username or password';
            $(".modal-body").text(msg);
            $('#myModal').modal('show');

            ev.preventDefault();
        }
    });
});

话虽如此,我强烈建议使用一个表单验证框架,因为它使您的代码更加模块化和可维护。我个人的偏好是,它已经存在很长时间了,而且效果很好,但是还有很多其他的方法(例如)。

有几种方法可以做到这一点。submit方法可以返回false,也可以将事件作为参数传递,然后调用preventDefault停止默认操作(submit)

返回False

$(document).ready(function() {
    $("form").submit(function() {
        if (($('input[name^=password]').val()) != password) {
            msg = 'Incorrect username or password';
            $(".modal-body").text(msg);
            $('#myModal').modal('show');

            return false;
        }
    });
});
预防默认值

$(document).ready(function() {
    $("form").submit(function(ev) {
        if (($('input[name^=password]').val()) != password) {
            msg = 'Incorrect username or password';
            $(".modal-body").text(msg);
            $('#myModal').modal('show');

            ev.preventDefault();
        }
    });
});
话虽如此,我强烈建议使用一个表单验证框架,因为它使您的代码更加模块化和可维护。我个人的偏好是,它已经存在很长时间了,而且效果很好,但还有很多其他的(例如)。

固定:

$(document).ready(function() {
    $("form").submit(function(event) {
        event.preventDefault();
        if (($('input[name^=password]').val()) != "password") {
            msg = 'Incorrect username or password';
            $(".modal-body").text(msg);
            $('#myModal').modal('show');

        }
        else
        {
          $(this).submit();
        }
    });
});
PS:我还将
密码
更改为
密码
,以避免未定义的var错误

工作引导层:固定:

PS:我还将
密码
更改为
密码
,以避免未定义的var错误


工作引导:您的演示有错误,在Chrome中对我不起作用。不要在客户端执行密码验证,也
var msg=“…”
您的演示有错误,在Chrome中对我不起作用。不要在客户端执行密码验证,也
var msg=“…”