- Palette 🎨
-
Ресурсы
- Форум
-
Видеокурс "Разработка сайтов на CMS Drupal"
- Блог
-
Кейсы
- Автоматический перевод страниц Drupal с помощью ИИ
- Управление конфигурацией на основе CI
- Drupal как backend: GraphQL, JSON:API, RESTful
- Как поддерживать огромные меню в Drupal
- Заменить Colorbox на GLightbox
- Переписывание плагинов CKEditor 4 для CKEditor 5
- Обновление Drupal 7 до последней версии Drupal
- Drupal Документация
- JsonDrop API Документация
- Новости
- Скачать Drupal
-
Нужна поддержка?
Palette - Сделайте её яркой🎨
Palette — Визуальный конструктор страниц, диплом дизайнера не требуется.
Scroll
Онлайн калькулятор
22/02/2025, by Гость (не проверено)
Форумы
Здравствуйте, при создании калькулятора, столкнулся с проблемой в формуле. Мне необходимо, что бы считалось вот так:
файл script.js
price = (typ*L+L+B)*H;
если в цифрах то это так: price = (0,5*4+4+6)*2,4; ответ выдает 20
но действие typ*L не выполняется, как я понимаю повторно один и тот же параметр не берется?
- Войдите, чтобы оставлять комментарии
Можно весь код файла script.js.
Если вы используете val(), тогда переменные нужно еще обработать parseInt(), если значения дробные, тогда нужно обрабатывать функцией parseFloat().
//Онлайн калькулятор
(function ($){
$(document).ready(function() {
var typ, L, B, H, price;
$('<div class="price"></div>').insertBefore($('#edit-actions'));
function changePrice(){
typ = $('#webform-component-typ input:checked').val();
L = $('#webform-component-L input:checked').val();
B = $('#webform-component-B input:checked').val();
H = $('#webform-component-H input:checked').val();
if(typ&&L&&B&&H){
typ = parseInt(typ);
L = parseInt(L);
B = parseInt(B);
H = parseInt(H);
price = (typ*L+L+B)*H;
price = Math.round(price);
$('.price').html('<p> Стоимость сруба:<strong>' + price + 'руб.</strong></p>');
}
}
$('#webform-client-form-13 #edit-submitted-typ,#webform-client-form-13 .webform-component-radios input').bind('click change', function(){
changePrice();
});
});
})(jQuery);
Странно, конечно, но попробуйте отдельную переменную ввесли для вычисления typ*L.
спасибо, проблема была в функции поставил parseFloat() и все заработало.