Делаем калькулятор стоимости
Бесплатный онлайн инструмент - конструктор калькуляторов стоимости без знания программирования, создавайте калькуляторы с различными полями ввода, условной логикой и сложными формулами, идеально подходит для расчёта цен, услуг и заказов.
Элементы калькулятора (перетащите для изменения порядка)
Примеры: a + b * 0.1, Math.round(price * quantity)
Доступные элементы для формулы
Добавьте элементы на вкладке "Элементы"
Предпросмотр калькулятора
HTML код
JavaScript код
Конфигурация (JSON)
Готовые шаблоны:
Введение
Этот инструмент позволяет создавать калькуляторы стоимости без навыков программирования. Вы можете:
- Добавлять различные типы полей ввода
- Настраивать логику расчётов с помощью формул
- Создавать условное отображение элементов
- Экспортировать готовый калькулятор в HTML файл
Создание элементов калькулятора
Элементы - это поля ввода, которые будут отображаться в вашем калькуляторе:
Доступные типы элементов:
| Тип | Описание | Пример использования |
|---|---|---|
| Текстовое поле | Однострочный текстовый ввод | Имя клиента, комментарий |
| Числовое поле | Поле для ввода чисел | Количество товаров, площадь помещения |
| Ползунок | Графический выбор значения в диапазоне | Уровень качества, количество дней |
| Выпадающий список | Выбор одного значения из списка | Тип услуги, категория товара |
| Чекбокс | Флажок (да/нет) | Дополнительные опции |
| Радиокнопки | Выбор одного варианта из нескольких | Способ доставки, вариант оплаты |
Пример: Добавление числового поля
- Выберите тип "Числовое поле"
- Введите название: "Количество товаров"
- Нажмите "Добавить элемент"
Теперь это поле появится в списке элементов и в предпросмотре.
Управление элементами:
- Клонирование: Нажмите для копирования элемента
- Изменение порядка: Перетащите элемент за иконку
- Редактирование: Нажмите
- Удаление: Нажмите
Настройка логики расчётов
Здесь вы создаёте формулу, по которой будет рассчитываться итоговая стоимость.
📌 Основы создания формул
Базовые операции:
| Операция | Пример | Результат (при значениях 10 и 5) |
|---|---|---|
| Сложение | a + b |
15 |
| Вычитание | a - b |
5 |
| Умножение | a * b |
50 |
| Деление | a / b |
2 |
| Проценты | a * 0.1 |
1 (10% от 10) |
Полезные функции:
| Функция | Пример | Описание |
|---|---|---|
| Округление | Math.round(4.6) |
→ 5 |
| Округление до 2 знаков | Math.round(4.567 * 100)/100 |
→ 4.57 |
| Минимум | Math.min(a, b) |
Меньшее из значений |
| Максимум | Math.max(a, b) |
Большее из значений |
🔢 Примеры готовых формул
1. Калькулятор стоимости заказа
Элементы:
input_m8q6atn3- количество товаровinput_m8q7btp4- цена за единицуinput_m8q8f03l- стоимость доставки
// Простая формула (используйте реальные ID из вашего калькулятора) input_m8q6atn3 * input_m8q7btp4 + input_m8q8f03l
2. Калькулятор скидки
Элементы:
input_m8q9g14m- сумма заказаinput_m8q0h25n- процент скидки
// С учётом скидки input_m8q9g14m * (1 - input_m8q0h25n/100) // С округлением до рубля Math.round(input_m8q9g14m * (1 - input_m8q0h25n/100))
3. Условный расчёт доставки
Элементы:
input_m8q1i36o- расстояние (км)chk_m8q2j47p- срочная доставка (чекбокс)
// Чекбокс возвращает 1 или 0 input_m8q1i36o <= 10 ? 500 : 1000 + (chk_m8q2j47p ? 500 : 0)
Логика: Если ≤10 км - 500₽, иначе 1000₽ + 500₽ если чекбокс отмечен
4. Расчёт зарплаты
Элементы:
input_m8q3k58q- основные часыinput_m8q4l69r- сверхурочные часыselect_m8q5m70s- категория работника
// Сложная логика с условием var baseRate = select_m8q5m70s === "senior" ? 1500 : 1000; var overtimeRate = select_m8q5m70s === "senior" ? 2000 : 1500; input_m8q3k58q * baseRate + input_m8q4l69r * overtimeRate
5. Работа с выпадающим списком
Элементы:
select_m8q6n81t- тип услуги (значения: "standard", "premium")
// Проверка точного значения select_m8q6n81t === "premium" ? 2000 : 1000
⚠️ Возможные ошибки
- Неверные имена: Используйте точные идентификаторы из списка элементов (чувствительны к регистру)
- Пропущенные скобки:
a + b * c≠(a + b) * c - Дробные числа: Используйте точку:
0.5(не0,5) - Чекбоксы: Возвращают 1 (отмечен) или 0 (не отмечен)
Условное отображение элементов
Позволяет динамически скрывать/показывать элементы формы в зависимости от значений других полей.
⚙️ Как это работает технически
При изменении значения элемента-триггера система проверяет все зависимые поля и:
- Показывает элемент, если условие выполнено
- Скрывает элемент, если условие не выполнено
- Автоматически пересчитывает формулу, если были скрыты/показаны влияющие на расчёт поля
Пошаговая настройка:
📌 Шаг 1: Создайте элемент-триггер
Поддерживаемые типы:
- Выпадающий список - проверяется точное значение
- Радиокнопки - проверяется выбранное значение
- Чекбокс - проверяется 1 (отмечен) или 0 (не отмечен)
Пример: select_delivery_type с вариантами "courier", "cargo", "post"
📌 Шаг 2: Создайте зависимый элемент
Настройте условие:
- В поле "Показывать если" выберите ваш триггер
- В поле "Значение" укажите:
- Для чекбоксов:
1или0 - Для других типов: точное значение в кавычках
- Для чекбоксов:
Пример: Показывать input_cargo_number если select_delivery_type равно "cargo"
🔧 Практические примеры
Пример 1: Дополнительные опции для типа услуги
Элементы:
select_service_type(значения: "cleaning", "repair")input_room_count- показывать только для "cleaning"select_repair_type- показывать только для "repair"
Настройки:
Для input_room_count: Показывать если: select_service_type Значение: "cleaning" Для select_repair_type: Показывать если: select_service_type Значение: "repair"
Пример 2: Чекбокс для дополнительных услуг
Элементы:
chk_insurance- чекбокс "Добавить страховку"input_insurance_sum- показывать только при отмеченном чекбоксе
Настройки:
Для input_insurance_sum: Показывать если: chk_insurance Значение: "1"
Пример 3: Многоуровневая логика
Элементы:
select_country(значения: "ru", "kz", "eu")select_region- показывать только для "ru" и "kz"input_eu_vat- показывать только для "eu"
Решение:
// Для select_region потребуется дополнительная JS-формула // в условном отображении: ["ru", "kz"].includes(select_country)
⚠️ Возможные проблемы
- Элемент не появляется в списке - убедитесь, что триггер создан до зависимого элемента
- Условие не срабатывает - проверьте точность значения (регистр, пробелы, кавычки)
- Не работает с ползунками - используйте выпадающие списки или радиокнопки как триггеры
🆔 Работа с идентификаторами
Инструмент автоматически генерирует ID для каждого элемента в формате:
| Тип элемента | Пример ID |
|---|---|
| Выпадающий список | select_m8q6cwha |
| Числовое поле | input_m8q6atn3 |
| Чекбокс | chk_m8q8f03l |
Как правильно ссылаться в формулах:
- Добавьте элемент и задайте ему название (например, "Количество товаров")
- Перейдите на вкладку "Логика"
- В таблице "Доступные элементы" найдите нужный ID
- Используйте его в формуле как переменную:
// Правильно: select_m8q6cwha === "express" ? 1000 : 500 // Неправильно (использование названия вместо ID): "Тип доставки" === "express" ? 1000 : 500
Экспорт калькулятора
После настройки всех элементов и формулы вы можете экспортировать калькулятор:
Доступные варианты экспорта
- Сохранить конфигурацию - сохраняет настройки в JSON-файл для последующего редактирования
- Загрузить конфигурацию - загружает ранее сохранённые настройки
- Экспорт в файлы - создаёт HTML файл готового калькулятора
Как использовать готовый калькулятор:
- Экспортируйте калькулятор (кнопка "Экспорт в файлы")
- Скопируйте полученные файлы (HTML и JS) на ваш сайт
- Добавьте ссылку на CSS Bootstrap в head вашей страницы:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
Примеры готовых калькуляторов
Элементы:
input_m8q6atn3- площадь помещения (м²)select_m8q7btp4- тип ремонта: "economy", "standard", "premium"chk_m8q8f03l- дополнительно: демонтажchk_m8q9g14m- дополнительно: вывоз мусора
Формула:
// Определяем базовую стоимость var basePrice = input_m8q6atn3 * ( select_m8q7btp4 === "economy" ? 1000 : select_m8q7btp4 === "standard" ? 1500 : 2000 ); // Добавляем доп. работы (чекбоксы возвращают 1 или 0) var additional = (chk_m8q8f03l ? 5000 : 0) + (chk_m8q9g14m ? 3000 : 0); // Итоговая сумма basePrice + additional
Элементы:
input_m8q0h25n- вес посылки (кг)radio_m8q1i36o- способ доставки: "standart", "express", "pickup"chk_m8q2j47p- страхование
Формула:
// Инициализируем стоимость
var deliveryCost = 0;
// Определяем базовую стоимость по типу доставки
if (radio_m8q1i36o === "standart") {
deliveryCost = input_m8q0h25n * 10;
} else if (radio_m8q1i36o === "express") {
deliveryCost = input_m8q0h25n * 20 + 500;
}
// Добавляем страховку (300 руб если чекбокс отмечен)
deliveryCost + (chk_m8q2j47p ? 300 : 0)
Совет: Для радиокнопок используйте точные значения вариантов. Проверить их можно в настройках элемента.
Элементы:
select_m8q3k58q- размер: "small"(500₽), "medium"(800₽), "large"(1100₽)checkbox_m8q4l69r- сырный бортик (+200₽)input_m8q5m70s- количество
Формула:
// Стоимость в зависимости от размера var pizzaPrice = ( select_m8q3k58q === "small" ? 500 : select_m8q3k58q === "medium" ? 800 : 1100 ); // Добавляем бортик если выбран pizzaPrice = pizzaPrice + (checkbox_m8q4l69r ? 200 : 0); // Умножаем на количество pizzaPrice * input_m8q5m70s
Использование готовых шаблонов
Как загрузить шаблон
- Перейдите на вкладку "Шаблоны"
- Выберите нужный калькулятор из списка
- Нажмите "Загрузить шаблон"
- Настройте параметры под свои требования
- Экспортируйте готовый калькулятор
Как создать свой шаблон
Чтобы сохранить свой калькулятор как шаблон:
- Настройте все элементы и формулу
- На вкладке "Экспорт" нажмите "Сохранить конфигурацию"
- Переименуйте файл (например,
мой-шаблон.json) - Для использования - загрузите через "Загрузить конфигурацию"
💡 Лучшие практики
- Начинайте с готовых шаблонов для быстрого старта
- Адаптируйте шаблоны под свои нужды (изменяйте цены, параметры)
- Тестируйте калькулятор после каждого сложного условия
- Сохраняйте промежуточные версии через JSON-экспорт
- Используйте клонирование для похожих элементов
Ещё конструкторы
Версия: 28.03.25

