2016-07-22 6 views
0

Моя функция отправки кликов следующая. aAmt - поле $, например, например. $ 45.00 a_amount всегда 10000. Я конвертирую a_amount в $ в displayCurrencyFormat.jquery Сравнение 2 целых чисел

Затем я преобразовываю оба в parseInt и делаю> = comaprison, и это терпит неудачу. Несмотря на то, что aAmt> 10000 долларов США, а в таблице должно отображаться предупреждение, это не так.

$("#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

Можете ли вы объяснить значение ' "$ {dAmt}"' пожалуйста? – BobRodes

+0

$ {dAmt} = 10000 поступает из БД – JNPW

ответ

1

Сначала вы должны преобразовать его в целочисленные данные, а затем вы можете сравнить их.

валюта отформатирован ввода считаются не формат числа, так их сравнения являются чем-то вроде String для String сравнения, не Number к Number как то, что вы хотите достичь.

Refrence ссылка: How to convert a currency string to a double with jQuery or Javascript?

1

Знаете ли вы, что parseInt ('$ 10000') фактически дает вам «NaN»? И как я могу видеть здесь вы пытаетесь сравнить число и строка ...

Просто попробуйте, чтобы предупредить aAmt и a_amount переменных, прежде чем сравнивать их, и вы увидите, что на самом деле происходит ...

Смежные вопросы