我的提交点击功能如下。 aAmt是一个$ field,例如。 $ 45.00 a_amount总是10000。 我在displayCurrencyFormat函数中将a_amount转换为$。
然后我将两者都转换为parseInt并执行> = comaprison并且它失败了。即使aAmt是> $ 10000和conition应显示警告它没有。
$("#submitId").click(function () {
var aAmt = $("#aAmt").val();
var a_amount = "${dAmt}";
a_amount = displayCurrencyFormat(a_amount);
var pLen = $("#pOd").val();
if ((parseInt(aAmt) >= parseInt(a_amount)) && (pLen.length == 0)) {
$('#pDiv').text('Please provide a password');
$("#pOd").focus();
return false;
}
...//
});
function displayCurrencyFormat(a_amount)
{
//convert amount to currency format
var nbrAmt = Number(a_amount.replace(/[^0-9\.]+/g,""));
var fmtAmt = '$' + nbrAmt.toFixed(2).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
return fmtAmt;
}
答案 0 :(得分:1)
你知道parseInt(' $ 10000')实际上给你" NaN"? 正如我在这里看到的,你试图比较整数和字符串......
在比较之前尝试提醒aAmt和a_amount变量,你会看到实际发生的事情......
答案 1 :(得分:1)
您应该首先将其转换为类似整数的数据,然后您可以比较它们。
货币格式化输入被视为不是数字格式,因此将它们比较为String
到String
比较,而不是Number
到Number
就像你想要的那样实现
参考链接:How to convert a currency string to a double with jQuery or Javascript?