2012-03-10 2 views
1

jQuery/JavaScript에 이상한 문제가 있습니다. 내가 작성한이 코드는 사용자가 입력하는 입력 상자 (텍스트) 그래서 값의 값을 변경jQuery - 이상한 버그 100.00 <2.50

var minimumPercent = $('.donationTextBox').val(); 

$('.donationTextBox').change(function() { 
    var donationAmount = parseFloat($('.donationTextBox').val()); 
    donationAmount = donationAmount.toFixed(2); 

    if(donationAmount < minimumPercent || donationAmount == "NaN") { 
     $('.donationTextBox').val(minimumPercent); 
    } 
    else { 
     $('.donationTextBox').val(donationAmount); 
    } 
}); 

돈 형식 (예 : 96.49)이 코드를 사용하고도과에 확인 금액이 minimumPercent 이상이 아닌지 확인하십시오. 값이 0이면 값을 minimumPercent으로 변경합니다.
내가 가지고있는 문제는 minimumPercent이 2.50를 보유하고 사용자가 100.00을 입력하면 몇 가지 이상한 이유로 100.00이 2.50보다 낮다고 가정합니다. , 200.00 잘 작동하지만.

아이디어가 있으십니까? 도와 주셔서 감사합니다!

답변

3

minimumPercent를 설정할 때 ParseFloat를 시도해보십시오.

var minimumPercent = ParseFloat($('.donationTextBox').val()); 

가 나는 엔진 따라서, float로 문자열을 비교하는 문자열로 다시 부동 소수점 변환이다 생각하고 당신이 할 때 올바른 알파벳 비교 왼쪽에 100.00 < 2.50 = 사실 않습니다.

마이크

+0

는 문자열 값을 비교하는 것처럼 그것은 확실히 소리를 떠 있도록에서는 toFixed이 문자열에 float 값으로 변환됩니다 사용. – DOK

+0

그래, 그 var에 대해 완전히 잊었다. 감사! :) –

1

또한 비교를 위해 항상 단말 값

var minimumPercent = parseFloat($('.donationTextBox').val()); 

$('.donationTextBox').change(function() { 
    var donationAmount = parseFloat($('.donationTextBox').val()); 

    if(donationAmount < minimumPercent || donationAmount == "NaN") { 
     $('.donationTextBox').val(minimumPercent.toFixed(2)); 
    } 
    else { 
     $('.donationTextBox').val(donationAmount.toFixed(2)); 
    } 
});