2016-07-22 81 views
0

下面的jQuery/JS有什麼不對嗎?我有一個輸入字段aAmt,在下面的變化電話。來自DB的${dAmt} = "10000"。它基本上將數字轉換爲$格式(例如.. 23到$ 23.00)並將該值聚焦到輸入字段。問題是if循環(if(aAmt >= a_amount)...)失敗。jquery hide/show or condiiton failing

即使條件失敗,它會轉到if循環並顯示div哪些不應該發生。我在開發者控制檯中看不到任何錯誤。

$('#aAmt').change(function() { 
    var aAmt = $("#aAmt").val(); 
    var a_amount = "${dAmt}";   
    curFormat(aAmt);   
    if(aAmt >= a_amount)  
    {  
     $("#dsDiv").show();  
    }else{ 
     $("#dsDiv").hide(); 
    } 

}); 

function curFormat(aAmt) 
{ 
    var nAmt = Number(aAmt.replace(/[^0-9\.]+/g,"")); 
    var fAmt = '$' + nAmt.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");  
    document.getElementById("aAmt").value = fAmt; 
} 
+1

你比較貨幣值的字符串,這不會有任何效果。 ''$ 9'>'$ 10''爲真,因爲'9'是比「1」更大的字符。字符串數字比較從來就不是一個好主意。 –

回答

1

您是否嘗試過a_amount轉換爲int,就一定要兩個整數放在一起比較:

var a_amount = parseInt("${dAmt}");