2012-07-25 73 views
0

在這裏工作是我的代碼:如果聲明沒有出於某種原因

alert ("Current: " + crmForm.all.new_currentdate.DataValue); 
alert ("Previous value: " + crmForm.all.new_date.DataValue); 

if(crmForm.all.new_currentdate.DataValue != crmForm.all.new_date.DataValue) 
{ 
    crmForm.all.new_otherValue.DataValue = null; 
    alert("Nulling other value"); 
} 

正如你所看到的,我已經把警報在開始檢查值,它們是相同的。但是,它仍然會進入IF語句,第三個警報(Nulling其他值)也會顯示出來。有任何想法嗎?這是在MS Dynamics CRM中。

感謝

+1

什麼類型的數據是那些'DataValue'?如果它們是字符串,也許其中一個在末尾有一些空格... – oezi 2012-07-25 10:55:17

+3

當你在'alert'框中檢查它時,你可以通過查看它來驗證它們的等同性,所以基本上,它可能只是它們只是看起來是平等的,或者具體地說,他們的字符串表示看起來是平等的(他們轉換爲字符串,因爲你將它與字符串連接起來)。嘗試以下操作並查看所得結果:alert(crmForm.all.new_currentdate.DataValue == crmForm.all.new_data.DataValue) – 2012-07-25 10:55:59

+0

在比較之前在兩個值上調用'trim()',以防止任何端點處的空格造成這個。 – 2012-07-25 10:56:34

回答

0
console.log(true + 1); // outputs 2 
console.log(true == 1); // outputs true 
console.log(true === 1); // outputs false. true is not the number 1. 
console.log(false + 1); // outputs 1 
console.log(false == 0); // outputs true 
console.log(false === 0); // outputs false. false is not the number 0. 

if語句可能會相當怪異的unitiatated的javascript,from here

+2

'0.1 + 0.2 == 0.3 // false' - > OPs問題幾乎可以解決任何問題...... – Christoph 2012-07-25 11:02:27

相關問題