javascript无法识别1 var> =另一个

时间:2011-11-27 23:39:44

标签: javascript jquery integer

所以,我的问题是我的代码似乎认识到100是< 2000年,但它没有认识到200< 1000

继承我的代码(我也使用jquery作为框架FYI)

$('.filter-price').submit(function(e) {

    var alert_message = '';
    var price_from = $('.filter-price #price_from').val();
    var price_to = $('.filter-price #price_to').val();

    if (isNaN(price_from))
    {
        alert_message += "Price from must be a number, i.e. 500\n";
        $('.filter-price #price_from').val('From');
    }

    if (isNaN(price_to))
    {
        alert_message += "Price to must be a number, i.e. 500\n";
        $('.filter-price #price_to').val('To');
    }

    if (!isNaN(price_from) && !isNaN(price_to) && (price_from >= price_to))
    {
        alert_message += "Price from must be less than price to\n";
        $('.filter-price #price_from').val('From');
        $('.filter-price #price_to').val('To');
    }

    if (alert_message != '')
    {
        e.preventDefault();
        alert(alert_message);
    }

});

我尝试在vars上使用parseInt(),它什么都不修复。

3 个答案:

答案 0 :(得分:4)

抱歉,你真的需要这样做:

var price_from = parseInt($('.filter-price #price_from').val(), 10);
var price_to = parseInt($('.filter-price #price_to').val(), 10);

在chrome控制台上查看结果:

'200' >= '1000'
true

200 >= 1000
false

如果您不想将数字限制为int,请将parseInt(val, 10)替换为parseFloat(val)

答案 1 :(得分:2)

parseInt适合我。不确定你的错误。

http://jsfiddle.net/98Bzn/1

var price_from = parseInt($('.filter-price #price_from').val());
var price_to = parseInt($('.filter-price #price_to').val());

答案 2 :(得分:1)

你在哪里尝试过使用parseInt()?在我看来,它将您的值解释为字符串而不是数字,因此您需要将它们强制转换为正确的数据类型。

我会这样做:

function convertCurrencyToNumber(value) {
    return Number(value.replace(/[^0-9\.]+/g,""));
}

...

var price_from = convertCurrencyToNumber($('.filter-price #price_from').val());
var price_to = convertCurrencyToNumber($('.filter-price #price_to').val());

您似乎正在使用货币,因此上述内容将转换为数据库存储的小数或您正在执行的任何其他操作。