停止在Jquery中提交表单

时间:2014-09-25 21:11:48

标签: jquery twitter-bootstrap validation

我正在尝试在bootstrap和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');

        }
    });
});

问题是表格还在继续吗?

她正在疯狂地工作 http://www.bootply.com/7Tvg4nhuG4

EDITED

我做了类似的事情,但我不确定是否可以使用两个IF

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

3 个答案:

答案 0 :(得分:2)

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

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

    return false; // this halts form submission
}

答案 1 :(得分:2)

有几种方法可以做到这一点。您的提交方法可以返回false,或者您可以将事件作为参数传入,并调用 preventDefault 来停止默认操作(提交)。

返回错误

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

<强>的preventDefault

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

话虽如此,我强烈建议使用框架进行表单验证,因为它使您的代码更加模块化和可维护。我的个人偏好是jQuery Validate已经存在了很长时间并且运作良好,但还有很多其他人(例如Parsley)。

答案 2 :(得分:1)

修正:

$(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:我还将password更改为"password"以避免未定义的var错误。

工作bootply:http://www.bootply.com/YstRWS1HB3