簡體   English   中英

Javascript:比較兩個值總是不相等

[英]Javascript: comparing two values always not equal

我正在嘗試做一些事情,但是我正在努力解決一個愚蠢的bug,希望您能為我提供幫助。

如您在代碼中所見,我在服務器上有一些復選框,並為其附加了JavaScript函數。 此函數獲取兩個值(當前值和原始值)。 我的問題是,當該功能觸發的if它總是得到第一款,從來沒有達到else子句,並沒有任何意義。

當我在代碼中使用很少的警報時,會發生以下情況:

情況1: 警報#1原始: false當前:是警報#2 true

情況2: 警報#1原始: false當前:錯誤警報#2 true

如您所見,無論我在第二次警報中得到了什么。

希望我能解釋我的問題。

<asp:CheckBox id="chkIsCustomQuantity" originalvalue="false" runat="server" onclick="checkChange(this.checked, this.attributes['originalvalue'].value" />

<script type="text/javascript" language="javascript">
    function checkChange(value, originalValue) {

        //i added this for debugging purpose
        alert('original: ' + originalValue + ' ' + 'current: ' + value);
        alert(value != originalValue);

        if (value != originalValue) {
             // always happens
        }
        else {
              // never happens
        }
    }

</script>

originalValue始終是一個字符串。 value是布爾值。 因此,它們永遠不會相等,但是當您將它們打印出來時,它們看起來是相同的(因為此時它們都被轉換為相同的字符串值)。

您可以通過多種方式解決此問題。 一種簡單的方法是先將兩個都轉換為字符串:

if (String(value) != String(originalValue))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM