Функция срабатывает на else всегда

236
14 июля 2017, 06:37

Вообщем есть небольшая функция

$('.checkboxx input[type="checkbox"]').change(function () {
    var allsumma = $('.editBProgress .title span').html();
    allsumma = del_spaces(allsumma); allsumma = parseFloat(allsumma);
    console.log(allsumma); console.log(activeSumma); console.log($('#' + $(this).attr('id') + ' .price').html());
    var res = allsumma - (activeSumma + $('#' + $(this).attr('id') + ' .price').html());
    if (res > 0) {
        donePay($(this).attr('id'));
    } else {
        navigator.showToast('Данная опалата больше необходимой.');
    }
});

при проверке в консоли она срабатывает как надо т.е. больше нуля идет другая функция, а меньше нуля ну ясно - выдает уведомление. А при работе через js непосредственно в коде всегда выдает else и неважно больше или меньше нуля. Помогите плизз

Answer 1

вообщем так и получилось один из данных взялся как строка поэтому не чего и не срабатывало. Вот так теперь работает:

$('.checkboxx input[type="checkbox"]').change(function () {
var allsumma = $('.editBProgress .title span').html();
allsumma = del_spaces(allsumma); allsumma = parseFloat(allsumma);
console.log(allsumma);console.log(activeSumma);console.log(parseInt($('#'+$(this).attr('id') + ' .price').html()));
var res = allsumma - (activeSumma + parseInt($('#'+$(this).attr('id') + ' .price').html()));;
if (res > 0) {
    donePay($(this).attr('id'));
} else {
    navigator.showToast('Данная опалата больше необходимой.');
}

});

Answer 2

Такое может быть только если переменная res - не число, а NaN (not a numeric)

Скорее всего, у вас переменная activeSumma имеет какое-то нечисленное значение.

Пример:

var a = 12.3 - ("4.5" + "6.7");
alert(a); // выведет NaN

И чтобы избежать подобных ошибок, нужно все слагаемые/вычитаемые приводить к численному значению через parseFloat или ещё как-то

Пример:

var a = 12.3 - (1*"4.5" + parseFloat("6.7"));
alert(a); // выведет 1.1000000000000014 в FireFox
READ ALSO
Прикрутить собственный плеер к audiorecorder?

Прикрутить собственный плеер к audiorecorder?

Делаю рекордер использую recorderworker и mp3worker

346
Создать кнопку с атрибутом onclick

Создать кнопку с атрибутом onclick

Подскажите, как через JS DOM создать подобный input:

337
Выборка тегов по содержимому

Выборка тегов по содержимому

Есть 3 тега с классом time с текстом, к примеру:

251