Изначальный вид функции:
function updateSummary() {
$('#completion-time').text((completion_time <= 0 ? "Invalid" : completion_time <= 24 ? completion_time + " Часов" : Math.ceil(completion_time / 24) + " Дней"));
}
<div class="d-flex gap-1 align-items-center justify-content-center fs-15"><i class="uil uil-stopwatch fs-25"></i> Прим. Время Выполнения: <span class="text-primary" id="completion-time">24 Hours</span></div>
Немного погуглив нашел что-то сильно похожее на то, что мне нужно:
function num_word(value, words){
value = Math.abs(value) % 100;
var num = value % 10;
if(value > 10 && value < 20) return words[2];
if(num > 1 && num < 5) return words[1];
if(num == 1) return words[0];
return words[2];
}
$('form input[type="number"]').change(function(){
var count = 0;
$('form input[type="number"]').each(function(){
val = parseInt($(this).val());
if (!isNaN(val)){
count = count + val;
}
});
$('#js_result').html(count + ' ' + num_word(count, ['товар', 'товара', 'товаров']));
});
<form>
<label>Выберите количество товаров:</label>
<p><input type="number" min="0" name="count_1"></p>
<p><input type="number" min="0" name="count_2"></p>
<p><input type="number" min="0" name="count_3"></p>
<p><strong>Итого: <span id="js_result">0</span></strong></p>
</form>
Попробовал адаптировать пример под свое решение. Получилось вот это:
function updateSummary(value, completion_time){
// $('#completion-time').text((completion_time <= 0 ? "Invalid" : completion_time <= 24 ? completion_time + " Часов" : Math.ceil(completion_time / 24) + " Дней"));
}
value = Math.abs(value) % 100;
var num = value % 10;
if(value > 10 && value < 20) return completion_time[2];
if(num > 1 && num < 5) return completion_time[1];
if(num == 1) return completion_time[0];
return completion_time[2];
}
$('#completion-time').text((completion_time <= 0 ? "Invalid" : count + ' ' + num_completion_time +"count, ['час', 'часа', 'часов']");
Почему может не работать?