2016-07-22 83 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}");