[英]Condition is false but code inside the if statement executed in 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.