Сейчас узнаем, какой подарок выпадет именно Вам
Крутите колесо
Ура, вы выиграли!
Ваш приз:
Годовой доступ
к видео на mo-ti -20%
по промокоду T19RAY
Промокод действителен 3 дня

Оформить доступ с промокодом
100
Как изменить у калькулятора зависимый коэффициент в формуле в Tilda
Финансовый учёт
Рассчитайте стоимость
Вид учёта:
Стоимость:
0 руб.

Как изменить у калькулятора зависимый коэффициент в формуле в Tilda

1
Создали блок BF402N и заполнили полями:
Название поля > вид поля > имя переменной
- Вид учёта: > вопрос с вариантами ответа > typeucheta
- Прибыль > выпадающий список > profit
- Кол-во операций в месяц > Кол-во (+ - ) > numoperation
- > Кол-во (+ - ) > correction (Значение 1)
- Вопрос с вариантами ответа (галочки) > budget
- Стоимость > Калькулятор >
Формула typeucheta+numoperation*300*correction + budget
2
Добавили блок Т123 и вставили в него код
При кол-ве операций больше 30 и прибыль через начисления, поле correction получает значение 0.5
Иначе получает значение 1

if ( (Number(vidInput.val()) >= 30) && profitType ){corectionInpit.val(0.5)
}else{ corectionInpit.val(1)};
Библиотека для примера

<script>
document.addEventListener("DOMContentLoaded", function() {
(function () { 
    
    const vidInput = document.querySelector('input[name="numoperation"]');
    const corectionInpit = document.querySelector('input[name="correction"]');
    const profitInput = document.querySelector('select[name="profit"]');
    corectionInpit.closest('.t-input-group').classList.add('correction');
    
    function correctionStart(){

        const profitType = profitInput.selectedIndex;
        
        if (  (Number(vidInput.value) >= 30) && profitType ){
            corectionInpit.value = 0.5;
        }else{ 
            corectionInpit.value = 1;
        };
    };
    

    ["input", "keyup"].forEach(function(event) {
	    vidInput.addEventListener(event, function() { 
            if (this.value.match(/[^0-9]/g)) {
                this.value = this.value.replace(/[^0-9]/g, '');
            };
            if( this.value.length > 3) {
                this.value = this.value.substr(0, 3); 
            };
            correctionStart();  
	    });
    });

    vidInput.nextElementSibling.addEventListener('click', function(event) {  
        correctionStart();
    });
    
    vidInput.previousElementSibling.addEventListener('click', function(event) {  
        correctionStart();
    });
    
    profitInput.addEventListener('change', function(event){
        correctionStart()
    });

})();    

});
</script>


<style>
.correction{display:none}
.t700 .t-input-group.t-input-group_fr {
    display: flex;
    align-items: baseline;
}
.t700 input.t-inputquantity {
    height: 40px;
}
</style>
Made on
Tilda