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

时间:2015-01-07 20:47:08

标签: javascript jquery validation

这是我的代码:

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

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

当我将代码更改为

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

    }
});

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

1 个答案:

答案 0 :(得分:5)

使用jQuery Validation插件方式:

carInfo.validate()将返回Validator object

因此valid变量始终为true。使用docs中的valid方法:

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