为什么这个"IF"总是执行即使条件是假的?

ren*_*ado 1 javascript validation jquery

这是我的代码:

$('.btn-back').off('click').on('click', function (event) {
    var valid = carInfo.validate();
    if (valid) {
        event.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)

event.preventDefault()无论什么价值,句子总是执行valid.

当我将代码更改为

$('.btn-back').off('click').on('click', function (event) {
    var valid = carInfo.validate();
    if (valid) {
        event.preventDefault();
    } else {

    }
});
Run Code Online (Sandbox Code Playgroud)

它按照应有的方式运行.也许它与自动分号插入(ASI)有关.

Pin*_*nal 5

使用jQuery Validation插件方式:

carInfo.validate()将返回Validator对象.

所以valid变量总是如此true.使用docs中的valid方法:

$('.btn-back').off('click').on('click', function (event) {
    carInfo.validate();
    if (carInfo.valid()) {
        event.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)