简体   繁体   English

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

[英]Why does this “IF” always execute even the condition is false?

This is my code: 这是我的代码:

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

the sentence event.preventDefault() always executes no matter what value valid is. 无论valid是什么,句子event.preventDefault()始终执行。

When I change the code to 当我将代码更改为

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

    }
});

it runs the way it should be. 它按照应有的方式运行。 Maybe it's something related to Automatic Semicolon Insertion (ASI). 也许与自动分号插入(ASI)有关。

Use the jQuery Validation plugin way: 使用jQuery Validation插件方式:

carInfo.validate() will return Validator object . carInfo.validate()将返回Validator对象

So valid variable is always true . 因此, valid变量始终为true Use valid method from docs : 使用docs中的 valid方法:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM