这是我见过的最奇怪的行为之一。以下是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)
。
为什么会发生这种情况?
答案 0 :(得分:0)
说明显而易见,听起来你的代码没有像你想象的那样运行。
您确定某处没有=
而不是==
吗?您确定您的括号全部匹配(代码未在此处显示)吗?尝试检查jslint。
formIsValid在哪里声明?它看起来像代码中的全局。
另外,你确定没有调用ShowMessageStrip() - 你试过在函数中放一个console.log(并没有别的)吗?