簡體   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