Больше чем / меньше чем проблема - PullRequest
1 голос
/ 15 ноября 2011

Я хочу подтвердить ввод пользователя. Если введенное пользователем число больше 3, то должно появиться сообщение «Слишком высокое», если оно меньше 0,15, то «Слишком низкое». Если оно между 3 и 0,15, то должно отображаться «Хорошо».

Проблема с моим кодом состоит в том, что если пользователь ввел отрицательное значение, он все равно показывает ему «Хорошо». Кажется, что независимо от того, что пользователь вводит, он показывает «Хорошо».

Это код:

$('#submit').click(function(e) {
        vel = $('#vel').val();
        validVel(vel);
});

function validVel(v) {

    if (v > 3) {
        $('.er').fadeIn(2000);
        var error = "Too High";
        $('.er').text(error);   
    }
    else if (v < 0.15) {
        $('.er').fadeIn(2000);
        var error = "Too Low";
        $('.er').text(error);   
    }
    else {
        $('.er').fadeIn(2000);
        var error = "Okay";
        $('.er').text(error);
    }


}

Ответы [ 3 ]

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

Вам нужно parseFloat в вашей функции, чтобы убедиться, что проверки на равенство действительны. Как отмечает WilQu, вы также должны включить тест isNaN -

function validVel(v) {

    fv = parseFloat(v);

    if (fv > 3) {
        $('.er').fadeIn(2000);
        var error = "Too High";
        $('.er').text(error);   
    }
    else if (fv < 0.15) {
        $('.er').fadeIn(2000);
        var error = "Too Low";
        $('.er').text(error);   
    }
    else if (isNaN(fv)) {
        $('.er').fadeIn(2000);
        var error = "Not a number";
        $('.er').text(error);   
    }   
    else {
        $('.er').fadeIn(2000);
        var error = "Okay";
        $('.er').text(error);
    }
} 

Демо - http://jsfiddle.net/AyhRS/7

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

Значение, которое вы пытаетесь проверить, является строкой. Используйте функцию parseFloat. Не забудьте проверить, что вы не получите NaN.

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

.val() возвращает строку. Чтобы преобразовать его в число, просто поставьте знак плюс перед $('#vel').val(), т.е. vel = +$('#vel').val();

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