У меня есть эта очень простая функция, которая дает неверные значения для определенного ввода, и я не вижу, где это происходит.
Если для параметра фотосъемки установлено значение от 20 до 59, оператор if не запускается. Значения 60 и выше и 19 и ниже работают правильно.
Пример:
o_priceperphoto = 0,50
o_photocount = 30
o_maxphotoprice = 11
o_photoprice = 15 (и должно быть 11)
Понятия не имею почему. Надеюсь, кто-то видит, что идет не так.
function photoprice(o){
var priceperphoto = $('#o_priceperphoto').val();
var photocount = $('#o_photocount').val();
var maxphotoprice = $('#o_maxphotoprice').val();
var photoprice = parseFloat(priceperphoto * photocount).toFixed(2);
// 20 - 59 errors
if(photoprice > maxphotoprice){
$('#o_photoprice').val(maxphotoprice);
}
};
Вы сравниваете значения float и string
Typecast parseFloat(photoprice)
и parseFloat(maxphotoprice)
function photoprice(o){
var priceperphoto = $('#o_priceperphoto').val();
var photocount = $('#o_photocount').val();
var maxphotoprice = $('#o_maxphotoprice').val();
var photoprice = parseFloat(priceperphoto * photocount).toFixed(2);
// 20 - 59 errors
if(parseFloat(photoprice) > parseFloat(maxphotoprice)){//need to typecast to float
$('#o_photoprice').val(maxphotoprice);
}
};
вы сравниваете значения float и string
Попробуй это
if(parseFloat(photoprice) > parseFloat(maxphotoprice)){
$('#o_photoprice').val(maxphotoprice);
}
o_priceperphoto
.