JavaScript не распознает 1 var> = другой - PullRequest
0 голосов
/ 28 ноября 2011

Итак, моя проблема здесь в том, что мой код, кажется, распознает, что 100 <2000, но не распознает, что 200 <1000 </p>

вот мой код (я также использую 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);
    }

});

Я пытался использовать parseInt () в vars, который ничего не исправляет.

Ответы [ 3 ]

4 голосов
/ 28 ноября 2011

Извините, но вам действительно нужно сделать следующее:

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)

2 голосов
/ 28 ноября 2011

parseInt у меня работает.Не уверен, что было неправильно для вас.

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

var price_from = parseInt($('.filter-price #price_from').val());
var price_to = parseInt($('.filter-price #price_to').val());
1 голос
/ 28 ноября 2011

Где вы пытались использовать 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());

Похоже, вы используете валюту, поэтому приведенное выше значение будет преобразовано в десятичное число для хранения базы данных или чего-либо еще, что вы делаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...