繁体   English   中英

即使条件为假,如果条件成立,JavaScript代码执行也会进入内部

[英]Javascript code execution going inside if condition even though condition is false

这是我所见过的最奇怪的行为之一。 以下是js代码段:

else if ($("*[id$=ddlDefaultPurpose]").val() == 2) {
    if ($("*[id$=ddlJobCategory]").val() == -1) {
        ShowMessageStrip(errorJobCategory);
        formIsValid = false;
    }
    //else if (!TryParseSalaryOffered($("*[id$=txtCurrentSalary]").val())) {
    //    ShowMessageStrip(errorCurrentSalary);
    //    formIsValid = false;
    //}
}

现在,当代码执行时, $("*[id$=ddlJobCategory]").val()不等于-1。 在Firebug中可以清楚地看到这一点。 现在发生的事情是,在评估条件之后,代码应该出来了,而是转到formIsValid = false 它跳过ShowMessageStrip(errorJobCategory)

为什么会这样呢?

显而易见,听起来您的代码没有按照您的想法运行。

您确定在某处没有=而不是==吗? 您确定所有括号都匹配(此处未显示代码)? 尝试签入jslint。

formIsValid在哪里声明? 在这里的代码中看起来像是全局的。

另外,您确定未调用ShowMessageStrip()-您是否尝试过将console.log(以及其他所有内容)放入函数中?

暂无
暂无

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

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